FE: Events-Detail doppelte Fetches vermeiden und Guest-Person-Lookup optimieren #173
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#173
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
Die Events-Detail-Seite (
events/[eventId]/+page.server.ts) hat zwei Probleme: (1) Doppelte Fetches derselben Endpunkte in beiden Tab-Zweigen, (2) N+1 bei der Gaesteliste durch fehlende Personendaten.Befund
Doppelte Fetches (
frontend/src/routes/app/events/[eventId]/+page.server.ts):GET /api/v1/events/{eventId}/roleswird imneedsSelfData-Zweig (Z. 55, zur Rollen-Pruefung) UND imneedsOrgData-Zweig (Z. 120) geladenGET /api/v1/persons?archived=falsewird imneedsSelfData-Zweig (Z. 70, fuer Haushalts-Mitglieder) UND imneedsOrgData-Zweig (Z. 103) geladenGET /api/v1/groupswird ebenfalls nur imneedsOrgData-Zweig geladen, obwohl derneedsSelfData-Zweig die Gruppen-Mitglieder bereits kennt (Z. 66)Guest-Person-Lookup (
frontend/src/routes/app/events/[eventId]/+page.server.ts:94-105):GET /api/v1/events/{eventId}/guestsliefert nurpersonId, keine PersonendatenGET /api/v1/persons(alle Personen) wird gebraucht, um Namen zuzuordnenIST-Zustand
SOLL-Zustand
Deduplizierung:
persons,groups,roleswerden EINMAL vor demif (needsOrgData/isOrganizer)-Branching geladenGuest-Person-Lookup:
GET /api/v1/events/{eventId}/guests?include=personliefertperson-Daten inlineGET /api/v1/personsmehr noetigAbhaengigkeiten
guests?include=person) — Backend-Endpunkt fuer Gast-Liste mit Personendaten inlineLabels
component/frontend, prio/high, type/refactor
Meilenstein
MS-REST (#32)