Files
Mitgliederverwaltung/.plans/done/issue-22-member-controller.md
shahondin1624 b29a268b1d Restructure .plans/ into done/ and open/ subdirectories
- Move completed plan files to .plans/done/
- Move 18 open plan files to .plans/open/
- Update .gitignore to exclude .verified_plans temp file
- Verified all 18 open plans still describe unimplemented issues
2026-04-28 20:30:55 +02:00

1.2 KiB

Plan: Issue #22 - MemberController API endpoints

Summary

Create MemberController with REST API for member CRUD operations including sub-entity management (addresses, phones, emails). All endpoints require Nextcloud authentication and CSRF protection on state-changing endpoints. Update routes.php with all API routes.

Endpoints

  • GET /api/v1/members - list (pagination, filters)
  • GET /api/v1/members/{id} - get single with sub-entities
  • POST /api/v1/members - create
  • PUT /api/v1/members/{id} - update
  • DELETE /api/v1/members/{id} - soft-delete
  • POST /api/v1/members/{id}/addresses - add address
  • PUT /api/v1/members/{id}/addresses/{addrId} - update address
  • DELETE /api/v1/members/{id}/addresses/{addrId} - delete address
  • Same pattern for phones and emails

Steps

  1. Create lib/Controller/MemberController.php
  2. Update appinfo/routes.php with all API routes

AC Checklist

  1. MemberController exists with proper DI
  2. All CRUD endpoints implemented
  3. Sub-entity endpoints for addresses, phones, emails
  4. Routes registered in routes.php
  5. Proper HTTP status codes (200, 201, 400, 404, 409, 500)
  6. CSRF protection annotations correct
  7. Input validation via MemberService