morz-infoboard/server/backend
Jesko Anschütz cfab277dc4 Fuege HTML-Detailseite und HTML-Fehlerseite fuer den Status-UI-Pfad hinzu
Drei eng zusammenhaengende Aenderungen in einem Commit, da sie dieselbe
Template-Infrastruktur teilen und gemeinsam die HTML-Diagnoseansicht
abrunden:

1. CSS-Extraktion (Verbesserung, kein Verhalten geaendert)
   Das bisherige Inline-CSS wurde in die Konstante statusPageCSS
   ausgelagert. statusPageCSSBlock injiziert es per String-Konkatenation
   in alle Templates, sodass kein Template-Inheritance-Mechanismus
   benoetigt wird und jede Seite eigenstaendig ausfuehrbar bleibt.

2. GET /status/{screenId} -- neue HTML-Detailseite
   Zeigt den letzten bekannten Datensatz eines einzelnen Screens:
   Derived State, Player-Status, Connectivity und Frische als
   Summary-Cards; Timing- und Endpoints-Details in aufgeraeuemten
   Key-Value-Tabellen. Verlinkung zurueck auf /status und auf den
   bestehenden JSON-Endpunkt. Bei unbekanntem Screen: 404 mit HTML-
   Fehlerseite und Rueck-Link.
   Route: GET /status/{screenId}

3. HTML-Fehlerseite fuer /status bei ungueltigen Query-Parametern
   Bisher lieferte handleStatusPage einen rohen JSON-Fehler, wenn
   z.B. ?stale=banana uebergeben wurde -- inkongruent fuer einen
   HTML-Endpunkt. writeStatusPageQueryError rendert jetzt dasselbe
   statusPageErrorTemplate wie der Not-Found-Fall der Detailseite
   und gibt text/html mit 400 zurueck.

Neue Tests (router_test.go):
- ScreenDetailPageRoute: prueft Inhalt, Links, Content-Type
- ScreenDetailPageNotFound: prueft 404 + HTML + Rueck-Link
- StatusPageRejectsInvalidQueryParams: prueft jetzt auch text/html
  fuer alle Fehlerfaelle

Docs (PLAYER-STATUS-HTTP.md):
- Query-Parameter-Validierung mit erlaubten Werten und Fehlercodes
- Neue /status/{screenId}-Seite und HTML-Fehlerseiten dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:03:24 +01:00
..
cmd/api Lege Entwicklungsleitfaden und Go-Gerueste an 2026-03-22 13:42:00 +01:00
internal Fuege HTML-Detailseite und HTML-Fehlerseite fuer den Status-UI-Pfad hinzu 2026-03-22 20:03:24 +01:00
Dockerfile Baue Layout-Resolver und lokale Entwicklungsgerueste aus 2026-03-22 16:03:21 +01:00
go.mod Lege Entwicklungsleitfaden und Go-Gerueste an 2026-03-22 13:42:00 +01:00
README.md Baue Layout-Resolver und lokale Entwicklungsgerueste aus 2026-03-22 16:03:21 +01:00

Backend

Dieses Verzeichnis enthaelt das erste Geruest fuer das zentrale Backend.

Ziel fuer die erste Ausbaustufe:

  • HTTP-API in Go
  • Health-Endpunkt
  • saubere Projektstruktur fuer spaetere API-, Worker- und Datenbankmodule
  • erste serverseitige Aufloesungslogik fuer message_wall

Geplante Unterstruktur:

  • cmd/api/ fuer den API-Startpunkt
  • internal/app/ fuer App-Initialisierung
  • internal/campaigns/ fuer Kampagnen- und Template-Logik
  • internal/httpapi/ fuer HTTP-Routing und Handler
  • internal/config/ fuer Konfiguration

Aktuell vorhanden:

  • GET /healthz
  • GET /api/v1
  • GET /api/v1/meta
  • POST /api/v1/tools/message-wall/resolve als erste serverseitige Layout-Aufloesung fuer message_wall
  • einheitliches API-Fehlerformat im HTTP-Layer