Skip to content

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:

ParamTypDomyślnieOpis
cursorstringKursor paginacji
limitint20Liczba wyników (1–100)
statusstringFiltruj: 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:

HTTPcodeKiedy
400VALIDATION_ERRORBrak 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 na completed oznacza bezpośrednie ukończenie — status staje się completed.
  • Todo utworzone przez rodzica (source: "parent"): gdy dziecko oznacza jako done, status zmienia się na pending_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:

HTTPcodeKiedy
404NOT_FOUNDZadanie nie istnieje
400VALIDATION_ERRORNieprawidłowy status

DELETE /app/todos/:id

Usuwa zadanie to-do.

Response 200:

json
{
  "data": {
    "id": "todo_001",
    "deleted": true
  }
}

Błędy:

HTTPcodeKiedy
404NOT_FOUNDZadanie nie istnieje

Lumos Islands v2 - Dokumentacja Projektowa