сервис техподдержки, многократно унаследованный. Херувим - ангел, а сотрудникам ТП нужно ангельское терпение
Go to file
2021-05-15 23:10:07 +03:00
app -- 2021-05-15 17:03:46 +03:00
dal fix some sseerrors 2021-05-15 23:10:07 +03:00
jwt_adapter fix some sseerrors 2021-05-15 23:10:07 +03:00
k8s deployment 2021-05-11 20:23:13 +03:00
middleware fix some sseerrors 2021-05-15 23:10:07 +03:00
model deployment 2021-05-11 20:23:13 +03:00
ops deployment 2021-05-11 20:23:13 +03:00
router -- 2021-05-15 17:03:46 +03:00
service fix some sseerrors 2021-05-15 23:10:07 +03:00
test add support for message delivering 2021-05-03 01:25:12 +03:00
tools fix some sseerrors 2021-05-15 23:10:07 +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 fix some sseerrors 2021-05-15 23:10:07 +03:00
go.sum fix some sseerrors 2021-05-15 23:10:07 +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-05-15 09:21:34 +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/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