сервис техподдержки, многократно унаследованный. Херувим - ангел, а сотрудникам ТП нужно ангельское терпение
Go to file
2021-06-07 16:40:15 +00:00
app strip 2021-05-13 16:36:53 +03:00
dal add closing methods 2021-05-11 13:57:58 +03:00
jwt_adapter create ticket 2021-04-11 12:48:15 +03:00
k8s deployment 2021-05-11 20:23:13 +03:00
middleware add support for message delivering 2021-05-03 01:25:12 +03:00
model deployment 2021-05-11 20:23:13 +03:00
ops deployment 2021-05-11 20:23:13 +03:00
service add closing methods 2021-05-11 13:57:58 +03:00
test add support for message delivering 2021-05-03 01:25:12 +03:00
tools add support for message delivering 2021-05-03 01:25:12 +03:00
version nutshell 2021-04-10 21:46:51 +03:00
.gitignore nutshell 2021-04-10 21:46:51 +03:00
Dockerfile deployment 2021-05-11 20:23:13 +03:00
go.mod add closing methods 2021-05-11 13:57:58 +03:00
go.sum add closing methods 2021-05-11 13:57:58 +03:00
main.go add closing methods 2021-05-11 13:57:58 +03:00
Makefile deployment 2021-05-11 20:23:13 +03:00
README.md README.md edited online with Bitbucket 2021-06-07 16:40:15 +00:00

Heruvym

/create - метод для создания тикета. пример запроса

POST https://staging.blacbroc.com/support/create

Тело запроса {"Title":"test ticket title","Message":"test ticket message"}

тело ответа {"Ticket":"c2fekjcobibtq7akknog"}

/subscribe - sse метод для подписывания на изменения по всех тикетах доступных пользователю.

пример запроса https://staging.blacbrok.com/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 метод для подписки на сообщения из одного тикета.

пример запроса https://staging.blacbrok.com/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 https://staging.blacbroc.com/support/send

Тело запроса {"message":"test ticket message","TicketID":"c2fekjcobibtq7akknog", "lang":"ru","files": ["idoffile"]}

Ответ null

/getTickets - метод для получения тикетов с пагинацией

пример запроса POST https://staging.blacbroc.com/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 https://staging.blacbroc.com/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 https://staging.blacbroc.com/support/pick

Тело запроса: {"ticket":"c2fekjcobibtq7akknog"}

Ответ: null

/delegate - передача тикета другому сотруднику

пример запроса POST https://staging.blacbroc.com/support/delegate

Тело запроса: {"ticket":"c2fekjcobibtq7akknog","answerer":"c2fekjcobibtq7akknog"}

Ответ: null

/vote - метод для оценки полезности ответа

пример запроса POST https://staging.blacbroc.com/support/delegate

Тело запроса: {"ticket":"c2fekjcobibtq7akknog","rate":5}

Ответ: null

/close - метод для закрытия тикета

пример запроса POST https://staging.blacbroc.com/support/close

Тело запроса: {"ticket":"c2fekjcobibtq7akknog"}

Ответ: null