Backend: formFinal gegen event.formDefinition validieren #300
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#300
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?
Aktuelles
Die Endpunkte
PUT /api/v1/events/{id}/guests/{pid}/respondundPOST /api/v1/events/{id}/guests/batch-respondakzeptieren jedes beliebige JSON-Objekt alsformFinal. Es gibt keine Validierung derformFinal-Struktur gegen dieevent.formDefinition.Der einzige vorhandene Check: bei
status: 'confirmed'mussformFinalmindestens einen Key enthalten (sonst 400).Gewuenscht
Eine Validierungs-Utility in
backend/src/lib/, dieformFinalgegenevent.formDefinitionprueft:required: truemuessen informFinalvorhanden sein (ausserstatus: 'declined')formDefinitiondefiniert sind, duerfen informFinalvorkommenoptionsenthalten seinoptionsenthalten seintext→ string,number→ number,checkbox→ arrayDie Validierung soll in
forms.tsin beiden Endpunkten (respond,batch-respond) nach der AJV-Schema-Validierung und vor demcalculateContribution()-Aufruf eingebaut werden.Betroffene Dateien
backend/src/routes/forms.ts—respond-Handler (Zeile 170),batch-respond-Handler (Zeile 250)backend/src/lib/— neue Dateiform-validation.tsbackend/openapi.yaml— ggf. Schema-ErweiterungNotes
status: 'confirmed'aktiv; beideclinedwirdformFinalignoriert.calculateContribution()-Funktion (Zeilen 11-37) informs.tsiteriert bereits korrekt ueberformDefinitionundformFinal— kann als Referenz dienen.niboer referenced this issue2026-07-19 14:49:12 +00:00