# Heruvym /create - метод для создания тикета. пример запроса POST http://localhost:8000/support/create Тело запроса ``` { "Title":"test ticket title", "Message":"test ticket message" } ``` тело ответа ``` { "Ticket":"c2fekjcobibtq7akknog" } ``` /subscribe - sse метод для подписывания на изменения по всех тикетах доступных пользователю. пример запроса http://localhost:8000/support/subscribe?Authorization=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6ImMxdmNrZWtvYmlicmFmYWU2bjYwIiwiU2Vzc2lvbiI6ImMxdmNrZWtvYmlicmFmYWU2bjZnIiwiVXNlciI6ImMxdXAxY2tvYmliaXVpNDVxNGYwIiwiVGFyaWZmIjowLCJDcmVhdGVkIjoxNjE4OTIyMDQyMDQ3LCJMYXN0U2VlbiI6MTYxODkyMjA5OTg5MH0.INLy790JP-o6DDZcXfSEXUDg7lE1_83Ns2vDJVrUFuQ тело ответа ``` Ticket: { ID string `bson:"_id"` UserID string `bson:"UserID"` SessionID string `bson:"SessionID"` AnswererID string `bson:"AnswererID"` State string `bson:"State"` TopMessage: { ID string `bson:"_id" json:"id"` TicketID string `bson:"TicketID" json:"ticket_id"` UserID string `bson:"UserID" json:"user_id"` SessionID string `bson:"SessionID" json:"session_id"` Message string `bson:"Message" json:"message"` Files []string `bson:"Files" json:"files"` Shown map[string]int `bson:"Shown" json:"shown"` CreatedAt time.Time `bson:"CreatedAt" json:"created_at"` } Title string `bson:"Title"` CreatedAt time.Time `bson:"CreatedAt"` UpdatedAt time.Time `bson:"UpdatedAt"` Rate int `bson:"Rate"` } ``` /ticket - sse метод для подписки на сообщения из одного тикета. пример запроса http://localhost:8000/support/ticket?ticket=c2fekjcobibtq7akknog&Authorization=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJJRCI6ImMxdmNrZWtvYmlicmFmYWU2bjYwIiwiU2Vzc2lvbiI6ImMxdmNrZWtvYmlicmFmYWU2bjZnIiwiVXNlciI6ImMxdXAxY2tvYmliaXVpNDVxNGYwIiwiVGFyaWZmIjowLCJDcmVhdGVkIjoxNjE4OTIyMDQyMDQ3LCJMYXN0U2VlbiI6MTYxODkyMjA5OTg5MH0.INLy790JP-o6DDZcXfSEXUDg7lE1_83Ns2vDJVrUFuQ тело ответа ``` { ID string `bson:"_id" json:"id"` TicketID string `bson:"TicketID" json:"ticket_id"` UserID string `bson:"UserID" json:"user_id"` SessionID string `bson:"SessionID" json:"session_id"` Message string `bson:"Message" json:"message"` Files []string `bson:"Files" json:"files"` Shown map[string]int `bson:"Shown" json:"shown"` CreatedAt time.Time `bson:"CreatedAt" json:"created_at"` } ``` /send - метод для отправки сообщения в тикета пример запроса POST http://localhost:8000/support/send Тело запроса ``` { "message":"test ticket message", "TicketID":"c2fekjcobibtq7akknog", "lang":"ru", "files": ["idoffile"] } ``` Ответ null /getTickets - метод для получения тикетов с пагинацией пример запроса POST http://localhost:8000/support/getTickets Тело запроса: ``` { "amt":10, "page":1, "srch":"test", "status":"open" } ``` Ответ: ``` [{ ID string `bson:"_id"` UserID string `bson:"UserID"` SessionID string `bson:"SessionID"` AnswererID string `bson:"AnswererID"` State string `bson:"State"` TopMessage: { ID string `bson:"_id" json:"id"` TicketID string `bson:"TicketID" json:"ticket_id"` UserID string `bson:"UserID" json:"user_id"` SessionID string `bson:"SessionID" json:"session_id"` Message string `bson:"Message" json:"message"` Files []string `bson:"Files" json:"files"` Shown map[string]int `bson:"Shown" json:"shown"` CreatedAt time.Time `bson:"CreatedAt" json:"created_at"` } Title string `bson:"Title"` CreatedAt time.Time `bson:"CreatedAt"` UpdatedAt time.Time `bson:"UpdatedAt"` Rate int `bson:"Rate"` }] ``` /getMessages - метод для получения сообщений конкретного тикета с пагинацией пример запроса POST http://localhost:8000/support/getMessages Тело запроса: ``` { "amt":10, "page":1, "srch":"test", "ticket":"c2fekjcobibtq7akknog" } ``` Ответ: ``` [{ ID string `bson:"_id" json:"id"` TicketID string `bson:"TicketID" json:"ticket_id"` UserID string `bson:"UserID" json:"user_id"` SessionID string `bson:"SessionID" json:"session_id"` Message string `bson:"Message" json:"message"` Files []string `bson:"Files" json:"files"` Shown map[string]int `bson:"Shown" json:"shown"` CreatedAt time.Time `bson:"CreatedAt" json:"created_at"` }] ``` /pick - подхватывание сотрудником диалога пример запроса POST http://localhost:8000/support/pick Тело запроса: ``` {"ticket":"c2fekjcobibtq7akknog"} ``` Ответ: null /delegate - передача тикета другому сотруднику пример запроса POST http://localhost:8000/support/delegate Тело запроса: ``` { "ticket":"c2fekjcobibtq7akknog", "answerer":"c2fekjcobibtq7akknog" } ``` Ответ: null /vote - метод для оценки полезности ответа пример запроса POST http://localhost:8000/support/delegate Тело запроса: ``` { "ticket":"c2fekjcobibtq7akknog", "rate":5 } ``` Ответ: null /close - метод для закрытия тикета пример запроса POST http://localhost:8000/support/close Тело запроса: ``` { "ticket":"c2fekjcobibtq7akknog" } ``` Ответ: null /support/sendFiles - метод для отправки файлов