[Story] Shopping-List CRUD-Endpoints #6

Closed
opened 2026-04-14 18:29:29 +02:00 by admin-mrrm · 0 comments
Owner

User Story

Als angemeldeter Nutzer
möchte ich Einkaufslisten erstellen, abrufen, ändern und löschen können
damit ich meine Einkäufe organisieren kann.

Akzeptanzkriterien

  • POST /shopping-lists — neue Liste anlegen
  • GET /shopping-lists — meine Listen
  • GET /shopping-lists/:id — eine Liste mit Items
  • PATCH /shopping-lists/:id — umbenennen
  • DELETE /shopping-lists/:id
  • POST /shopping-lists/:id/items — Item hinzufügen
  • PATCH /shopping-lists/:id/items/:itemId — Item ändern / abhaken
  • DELETE /shopping-lists/:id/items/:itemId
  • Nur der Owner (Keycloak-sub) sieht seine Listen
  • Alle Endpoints mit KeycloakAuthGuard
  • Request/Response-Validation mit Zod-Schemas aus shared-types

Technische Notizen

Drizzle-Schema:

  • lists(id, owner_sub, title, created_at, updated_at)
  • items(id, list_id, label, checked, position, created_at)

Service-Layer getrennt von Controller. Unit-Tests für Service (Repository mocken).

## User Story **Als** angemeldeter Nutzer **möchte ich** Einkaufslisten erstellen, abrufen, ändern und löschen können **damit** ich meine Einkäufe organisieren kann. ## Akzeptanzkriterien - [ ] POST /shopping-lists — neue Liste anlegen - [ ] GET /shopping-lists — meine Listen - [ ] GET /shopping-lists/:id — eine Liste mit Items - [ ] PATCH /shopping-lists/:id — umbenennen - [ ] DELETE /shopping-lists/:id - [ ] POST /shopping-lists/:id/items — Item hinzufügen - [ ] PATCH /shopping-lists/:id/items/:itemId — Item ändern / abhaken - [ ] DELETE /shopping-lists/:id/items/:itemId - [ ] Nur der Owner (Keycloak-sub) sieht seine Listen - [ ] Alle Endpoints mit KeycloakAuthGuard - [ ] Request/Response-Validation mit Zod-Schemas aus shared-types ## Technische Notizen Drizzle-Schema: - `lists(id, owner_sub, title, created_at, updated_at)` - `items(id, list_id, label, checked, position, created_at)` Service-Layer getrennt von Controller. Unit-Tests für Service (Repository mocken).
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
admin-mrrm/mrrmlabapp#6
No description provided.