211 lines
5.9 KiB
Markdown
211 lines
5.9 KiB
Markdown
# 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 - метод для отправки файлов
|
||
|