Chat - API
Moduł chat musi być aktywny na koncie, token z uprawnieniem chat.
Autoryzacja: Authorization: Bearer TOKEN
Endpointy
| Metoda | Ścieżka | Opis |
|---|---|---|
| GET | /chat.json |
Pokoje zalogowanego użytkownika |
| GET | /chat/rooms.json |
Wszystkie pokoje konta (admin; q, kind) |
| POST | /chat/rooms.json |
Utworzenie/znalezienie pokoju |
| PATCH | /chat/rooms/:id.json |
Zmiana nazwy (owner/admin) |
| DELETE | /chat/rooms/:id.json |
Usunięcie pokoju (owner/admin) |
| GET | /chat/rooms/:id/members.json |
Członkowie pokoju |
| POST | /chat/rooms/:id/add_member.json?user_id=X |
Dodanie osoby |
| POST | /chat/rooms/:id/remove_member.json?user_id=X |
Usunięcie osoby (owner/admin) |
| POST | /chat/rooms/:id/join.json |
Dołączenie (kanały) |
| POST | /chat/rooms/:id/leave.json |
Opuszczenie (rozmowy 1:1 nie da się opuścić) |
| POST | /chat/rooms/:id/mark_read.json |
Oznaczenie jako przeczytane |
| GET | /chat/rooms/:id/messages.json |
Historia (od najnowszych; paginacja before_id) |
| POST | /chat/rooms/:id/messages.json |
Wysłanie wiadomości |
| GET | /chat/messages.json |
Wszystkie wiadomości (admin; q, kind, room_id) |
| PATCH | /chat/messages/:id.json |
Edycja własnej wiadomości |
| DELETE | /chat/messages/:id.json |
Usunięcie (autor/admin) |
| POST | /chat/messages/:id/toggle_reaction.json?emoji=👍 |
Reakcja emoji |
Id pokoi i wiadomości to uuid (string).
Tworzenie pokoi
Rozmowa 1:1 (find-or-create per para):
{ "chat_room": { "kind": "dm", "user_id": 5 } }
Kanał:
{ "chat_room": { "kind": "group", "name": "Ogólny", "user_ids": [5, 7] } }
Rozmowa w kontekście obiektu (jeden pokój per obiekt; subject_type: Organize::Task, Organize::Project, Organize::Team, Mail::Email, Helpdesk::Ticket, Crm::Client):
{ "chat_room": { "kind": "subject", "subject_type": "Organize::Task", "subject_id": 123 } }
Wysłanie wiadomości
{ "chat_message": { "content": "Treść (markdown)", "parent_id": null } }
Wzmianka to token z ID: @[Imię Nazwisko](user:5) - użytkownik 5 dostanie powiadomienie, jeśli jest członkiem pokoju. @all / @here powiadamia wszystkich członków.