FE: Ueberfluessige Requests eliminieren (Landing-Page, updateEventRole, Gruppen-Liste) #174
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner#174
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
Drei unabhaengige Optimierungen zur Eliminierung von API-Calls, die ohne Backend-Aenderungen auskommen.
1. Landing Page: Login-Check per Cookie statt API-Call
Datei + Zeile:
frontend/src/routes/+page.svelte:7-14IST:
Der Client ruft
GET /api/v1/personsmit 3s Timeout auf, nur um zu prufen, ob die Session gueltig ist. Der Request geht durch den BFF-Proxy ans Backend und validiert das JWT — volle Backend-Last fuer einen Boolean.SOLL:
+page.server.tschecktlocals.user(imhandle-Hook validiert) und steuertisLoggedInviadatasession_token(= eingeloggt) pragenReduktion: 1 Call → 0
2. updateEventRole: roleId im Formular statt Name-Lookup
Datei + Zeile:
frontend/src/routes/app/events/[eventId]/+page.server.ts:622-633IST:
Die Action macht erst einen GET aller Rollen, um die
roleIdpername-Vergleich zu finden.SOLL:
roleIddirekt mit (statt nuroriginalName)Reduktion: 2 Calls → 1
3. Gruppen-Liste: memberCount ohne N+1 (Frontend-Workaround)
Datei + Zeile:
frontend/src/routes/app/groups/+page.server.ts:11-27IST:
Serielle N+1-Calls nur fuer die Mitglieder-Anzahl pro Gruppe.
SOLL (bis #169 implementiert ist):
GET /api/v1/groups→ Response mitmemberCount-Feld erweitern lassen (leichter Backend-Fix in openapi.yaml + groups.ts)Promise.allstatt seriellerfor-SchleifeLangfristig: #169 (
groups?include=members) eliminiert das Problem komplett.Abhaengigkeiten
Labels
component/frontend, prio/medium, type/refactor
Meilenstein
MS-REST (#32)