API — Todo
Lista zadań do zrobienia (to-do list) zarządzana przez dziecko. Pozwala organizować własne cele i przypomnienia.
Wszystkie endpointy wymagają Authorization: Bearer <token>.
GET /app/todos
Pobiera listę zadań to-do. Paginacja kursorowa.
Query params:
| Param | Typ | Domyślnie | Opis |
|---|---|---|---|
cursor | string | – | Kursor paginacji |
limit | int | 20 | Liczba wyników (1–100) |
status | string | – | Filtruj: pending, pending_confirmation, completed |
Response 200:
json
{
"data": [
{
"id": "todo_001",
"title": "Dokończyć Wyspę Samogłosek",
"status": "pending",
"source": "child",
"created_at": "2026-03-07T14:00:00Z",
"updated_at": "2026-03-07T14:00:00Z"
},
{
"id": "todo_002",
"title": "Narysować obrazek dla mamy",
"status": "completed",
"source": "parent",
"created_at": "2026-03-06T10:00:00Z",
"updated_at": "2026-03-07T18:30:00Z"
}
],
"next_cursor": "eyJpZCI6InRvZG9fMDAyIn0",
"has_more": false
}POST /app/todos
Dodaje nowe zadanie to-do.
Request:
json
{
"title": "Przeczytać bajkę przed snem"
}Response 201:
json
{
"data": {
"id": "todo_003",
"title": "Przeczytać bajkę przed snem",
"status": "pending",
"source": "child",
"created_at": "2026-03-08T09:00:00Z",
"updated_at": "2026-03-08T09:00:00Z"
}
}Błędy:
| HTTP | code | Kiedy |
|---|---|---|
| 400 | VALIDATION_ERROR | Brak tytułu lub tytuł za długi (maks. 200 znaków) |
PATCH /app/todos/:id
Aktualizuje status zadania to-do.
Request:
json
{
"status": "completed"
}Response 200:
json
{
"data": {
"id": "todo_001",
"title": "Dokończyć Wyspę Samogłosek",
"status": "completed",
"source": "child",
"created_at": "2026-03-07T14:00:00Z",
"updated_at": "2026-03-08T09:05:00Z"
}
}Dopuszczalne wartości status: pending, pending_confirmation, completed.
Potwierdzenie przez rodzica
Zachowanie zależy od źródła todo:
- Todo utworzone przez dziecko (
source: "child"): zmiana statusu nacompletedoznacza bezpośrednie ukończenie — status staje sięcompleted. - Todo utworzone przez rodzica (
source: "parent"): gdy dziecko oznacza jako done, status zmienia się napending_confirmation. Rodzic potwierdza ukończenie w Manager web UI (akcja po stronie web route, nie przez/app/API).
Przykład odpowiedzi — todo oczekujące na potwierdzenie:
json
{
"data": {
"id": "todo_004",
"title": "Posprzątać pokój",
"status": "pending_confirmation",
"source": "parent",
"created_at": "2026-03-07T10:00:00Z",
"updated_at": "2026-03-08T15:30:00Z"
}
}Błędy:
| HTTP | code | Kiedy |
|---|---|---|
| 404 | NOT_FOUND | Zadanie nie istnieje |
| 400 | VALIDATION_ERROR | Nieprawidłowy status |
DELETE /app/todos/:id
Usuwa zadanie to-do.
Response 200:
json
{
"data": {
"id": "todo_001",
"deleted": true
}
}Błędy:
| HTTP | code | Kiedy |
|---|---|---|
| 404 | NOT_FOUND | Zadanie nie istnieje |