heruvym/README.md
2022-12-14 21:26:21 +03:00

211 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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