Files
triqura-ecd/docs/api/intakes-api.md
2025-11-23 10:13:00 +01:00

70 lines
1.7 KiB
Markdown

# Intakes API
Deze custom REST API ondersteunt de intake-flow na consolidatie van `/clients/``/patients/`. Alle endpoints verwachten een geldige Supabase sessie (cookies) en geven JSON terug.
## Endpoints
### GET `/api/intakes?patientId={uuid}`
Haalt alle intakes voor één patiënt op (nieuwste eerst).
**Query parameters**
- `patientId` _(verplicht)_ — UUID van de patiënt.
**Response**
```json
{
"intakes": [
{
"id": "uuid",
"patient_id": "uuid",
"title": "Intake - Aanvang zorg",
"department": "Volwassenen",
"status": "bezig",
"start_date": "2025-11-22",
"end_date": null,
"psychologist_id": null,
"notes": null
}
],
"total": 1
}
```
### POST `/api/intakes`
Maakt een nieuwe intake.
**Body**
```json
{
"patient_id": "uuid",
"title": "Intake - Aanvang zorg",
"department": "Volwassenen",
"start_date": "2025-11-22",
"psychologist_id": "uuid?",
"notes": "optional"
}
```
**Responses**
- `201` + intake object bij succes
- `400` met `details[]` bij validatiefout
### GET `/api/intakes/{intakeId}`
Levert één intake. Retourneert `404` als het ID niet bestaat.
### PUT `/api/intakes/{intakeId}`
Partiële update. Ondersteunt `title`, `department`, `status` (`Open`/`Afgerond`), `start_date`, `end_date`, `psychologist_id`, `notes`.
### DELETE `/api/intakes/{intakeId}`
Verwijdert een intake. `204 No Content` bij succes.
## Fouten
- `401`/`403`: geen sessie of onvoldoende rechten.
- `400`: ongeldige payload (zie `details`).
- `500`: onverwachte fout; check server logs.
## Implementatieverwijzing
- Type definities: `lib/types/intake.ts`
- Server actions: `app/epd/patients/[id]/intakes/actions.ts`
- API broncode: `app/api/intakes/` en `app/api/intakes/[intakeId]/`