BE-API-5a: Consent-Endpunkt #125

Closed
opened 2026-06-26 12:36:16 +02:00 by niboer · 0 comments
Owner

Beschreibung

Implementierung des Consent-Endpunkts aus MS-BE-API-5 (Epic #100).

Aufgaben

  • openapi.yaml: ConsentRequest-Schema + PUT /api/v1/events/{event_id}/guests/{person_id}/consent-Pfad
  • Route in guests.ts: PUT /api/v1/events/{event_id}/guests/{person_id}/consent
    • Auth: requireSelfOrGroupMember('event_id', 'person_id')
    • Body: { policyVersion: string }
    • Prueft ob Person Gast des Events ist (404 wenn nicht)
    • Erzeugt Consent-Eintrag in consents-Tabelle
    • Gibt Consent-Objekt zurueck
  • Tests in consent.test.ts:
    • 401 ohne Token
    • 403 wenn weder Gast selbst noch Haushaltsmitglied noch Organisator
    • 404 bei unbekanntem Event/Gast
    • 200 bei eigenem Consent
    • 200 bei Consent durch Haushaltsmitglied
    • 200 bei Consent durch Organisator
  • schema-consistency.test.ts: Konsistenzpruefung fuer neue Schemas

Abhaengigkeiten

  • Epic: #100
  • Naechster Task: #127 (DSGVO-Consent-Guard)

Technische Hinweise

  • Consent-Modell in Prisma existiert bereits (siehe prisma/schema.prisma)
  • consents-Tabelle hat consentId (PK), personId, acceptedBy, policyVersion, acceptedAt
  • Keine Aenderungen am Prisma-Schema noetig
## Beschreibung Implementierung des Consent-Endpunkts aus MS-BE-API-5 (Epic #100). ## Aufgaben - [ ] `openapi.yaml`: `ConsentRequest`-Schema + `PUT /api/v1/events/{event_id}/guests/{person_id}/consent`-Pfad - [ ] Route in `guests.ts`: `PUT /api/v1/events/{event_id}/guests/{person_id}/consent` - Auth: `requireSelfOrGroupMember('event_id', 'person_id')` - Body: `{ policyVersion: string }` - Prueft ob Person Gast des Events ist (404 wenn nicht) - Erzeugt Consent-Eintrag in `consents`-Tabelle - Gibt Consent-Objekt zurueck - [ ] Tests in `consent.test.ts`: - 401 ohne Token - 403 wenn weder Gast selbst noch Haushaltsmitglied noch Organisator - 404 bei unbekanntem Event/Gast - 200 bei eigenem Consent - 200 bei Consent durch Haushaltsmitglied - 200 bei Consent durch Organisator - [ ] `schema-consistency.test.ts`: Konsistenzpruefung fuer neue Schemas ## Abhaengigkeiten - Epic: #100 - Naechster Task: #127 (DSGVO-Consent-Guard) ## Technische Hinweise - `Consent`-Modell in Prisma existiert bereits (siehe `prisma/schema.prisma`) - `consents`-Tabelle hat `consentId` (PK), `personId`, `acceptedBy`, `policyVersion`, `acceptedAt` - Keine Aenderungen am Prisma-Schema noetig
Sign in to join this conversation.
No description provided.