Endpointy — Czas pracy (Workinfo)
| Metoda | Ścieżka | Opis |
|——–|———|——|
| GET | /organize/workinfos.json | Lista wpisów czasu pracy |
| GET | /organize/workinfos/:id.json | Pojedynczy wpis |
| POST | /organize/workinfos.json | Utworzenie wpisu |
| PATCH | /organize/workinfos/:id.json | Aktualizacja wpisu |
| DELETE | /organize/workinfos/:id.json | Usunięcie wpisu |
| POST | /organize/workinfos/start.json | Start stopera |
| POST | /organize/workinfos/stop.json | Stop stopera |
Autoryzacja: Authorization: Bearer TOKEN (uprawnienie: organize)
Pola wpisu
| Pole | Typ | Wymagane | Opis |
|——|—–|———-|——|
| content | string | warunkowo | Opis pracy (wymagany jeśli brak task_id) |
| date | string | tak | Data YYYY-MM-DD |
| time_from | string | tak | Czas rozpoczęcia (ISO 8601 lub HH:MM) |
| time_to | string | warunkowo | Czas zakończenia |
| hours | number | nie | Czas w godzinach (alternatywa dla time_to) |
| task_id | integer | nie | ID zadania |
| team_id | integer | nie | ID zespołu |
| project_id | integer | nie | ID projektu |
| client_id | integer | nie | ID klienta (CRM) |
| user_id | integer | nie | ID użytkownika (domyślnie bieżący) |
| kind | string | nie | Typ: start, stop, pause |
| tags | array | nie | Tagi kategoryzujące |
Tworzenie wpisu
POST /organize/workinfos.json
Authorization: Bearer TOKEN
{
"workinfo": {
"content": "Implementacja nowego modułu",
"date": "2026-03-05",
"time_from": "09:00",
"time_to": "11:30",
"task_id": 100,
"team_id": 1
}
}
Start/Stop stopera
POST /organize/workinfos/start.json
{"task_id": 100}
POST /organize/workinfos/stop.json
Filtrowanie listy
GET /organize/workinfos.json?user_id=5&date=2026-03-05
| Parametr | Opis |
|———-|——|
| user_id | ID użytkownika (lub user=me) |
| date | Data YYYY-MM-DD |
| task_id | ID zadania |
Endpointy — Raporty czasu pracy
| Metoda | Ścieżka | Opis |
|——–|———|——|
| GET | /organize/workinfo_reports.json | Lista raportów |
| GET | /organize/workinfo_reports/:id.json | Pojedynczy raport |
| POST | /organize/workinfo_reports.json | Utworzenie raportu |
| PATCH | /organize/workinfo_reports/:id.json | Aktualizacja raportu |
| DELETE | /organize/workinfo_reports/:id.json | Usunięcie raportu |
| POST | /organize/workinfo_reports/:id/approve.json | Zatwierdzenie raportu |
| POST | /organize/workinfo_reports/:id/unapprove.json | Cofnięcie zatwierdzenia |
| GET | /organize/workinfo_reports/:id/export.pdf | Eksport PDF |
| GET | /organize/workinfo_reports/:id/export.csv | Eksport CSV |
Pola raportu
| Pole | Typ | Wymagane | Opis |
|——|—–|———-|——|
| date_from | string | tak | Początek okresu YYYY-MM-DD |
| date_to | string | tak | Koniec okresu YYYY-MM-DD |
| user_id | integer | tak | ID użytkownika |
| team_id | integer | nie | ID zespołu |
| corrected_hours | number | nie | Korekta godzin |
| corrected_hours_note | string | warunkowo | Uzasadnienie korekty (wymagane jeśli corrected_hours ≠ 0) |
Tworzenie raportu
POST /organize/workinfo_reports.json
Authorization: Bearer TOKEN
{
"workinfo_report": {
"date_from": "2026-03-01",
"date_to": "2026-03-31",
"user_id": 5
}
}
Błędy (422)
{"date_from": ["nie może być puste"]}