added system bool varible
This commit is contained in:
parent
80a89df157
commit
dafb97288f
@ -49,6 +49,7 @@ func NewOtherController(deps Deps) *OtherController {
|
|||||||
type ReqScreenshot struct {
|
type ReqScreenshot struct {
|
||||||
TicketID string `json:"ticket"`
|
TicketID string `json:"ticket"`
|
||||||
Lang string `json:"lang"`
|
Lang string `json:"lang"`
|
||||||
|
System bool `json:"system"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *OtherController) RequestScreenshot(ctx *fiber.Ctx) error {
|
func (o *OtherController) RequestScreenshot(ctx *fiber.Ctx) error {
|
||||||
@ -60,6 +61,7 @@ func (o *OtherController) RequestScreenshot(ctx *fiber.Ctx) error {
|
|||||||
sess.Id,
|
sess.Id,
|
||||||
sess.Id,
|
sess.Id,
|
||||||
request.TicketID,
|
request.TicketID,
|
||||||
|
request.System, // system error flag
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
|
||||||
@ -81,6 +83,7 @@ var fileTypeLimits = map[string]int64{
|
|||||||
|
|
||||||
type PutFileReq struct {
|
type PutFileReq struct {
|
||||||
Ticket string `json:"ticket"`
|
Ticket string `json:"ticket"`
|
||||||
|
System bool `json:"system"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PutFileResp struct {
|
type PutFileResp struct {
|
||||||
@ -241,6 +244,7 @@ func (o *OtherController) PutFile(ctx *fiber.Ctx) error {
|
|||||||
sess.Id,
|
sess.Id,
|
||||||
req.Ticket,
|
req.Ticket,
|
||||||
fileIDs,
|
fileIDs,
|
||||||
|
req.System, // system error flag
|
||||||
)
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -281,8 +285,13 @@ func (o *OtherController) PutFile(ctx *fiber.Ctx) error {
|
|||||||
userLink = "незарегистрированного пользователя"
|
userLink = "незарегистрированного пользователя"
|
||||||
}
|
}
|
||||||
|
|
||||||
message := fmt.Sprintf("Вам пришло сообщение от %s сссылка на пользователя с %s, ccылка на чат - %s",
|
var message string
|
||||||
userLink, domain, supportLink)
|
if req.System {
|
||||||
|
message = fmt.Sprintf("СИСТЕМНАЯ ОШИБКА! Произошла ошибка в сообщении от %s c %s. Ссылка на чат: %s", userLink, domain, supportLink)
|
||||||
|
} else {
|
||||||
|
message = fmt.Sprintf("Вам пришло сообщение от %s ссылка на пользователя с %s, ссылка на чат - %s",
|
||||||
|
userLink, domain, supportLink)
|
||||||
|
}
|
||||||
|
|
||||||
if _, err := o.notifier.Send(tb.ChatID(o.tgChatID), message); err != nil {
|
if _, err := o.notifier.Send(tb.ChatID(o.tgChatID), message); err != nil {
|
||||||
fmt.Println("CAN NOT NOTIFY", err)
|
fmt.Println("CAN NOT NOTIFY", err)
|
||||||
|
@ -106,6 +106,7 @@ func (t *TicketController) CreateTicket(ctx *fiber.Ctx) error {
|
|||||||
session.Id,
|
session.Id,
|
||||||
ticketID,
|
ticketID,
|
||||||
[]string{},
|
[]string{},
|
||||||
|
false, // system error flag
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||||
}
|
}
|
||||||
@ -167,6 +168,7 @@ type ReqPutMessage struct {
|
|||||||
TicketID string `json:"ticket"`
|
TicketID string `json:"ticket"`
|
||||||
Files []string `json:"files"`
|
Files []string `json:"files"`
|
||||||
Lang string `json:"lang"`
|
Lang string `json:"lang"`
|
||||||
|
System bool `json:"system"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TicketController) PutMessage(ctx *fiber.Ctx) error {
|
func (t *TicketController) PutMessage(ctx *fiber.Ctx) error {
|
||||||
@ -190,6 +192,7 @@ func (t *TicketController) PutMessage(ctx *fiber.Ctx) error {
|
|||||||
sess.Id,
|
sess.Id,
|
||||||
request.TicketID,
|
request.TicketID,
|
||||||
[]string{},
|
[]string{},
|
||||||
|
request.System,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||||
@ -217,8 +220,13 @@ func (t *TicketController) PutMessage(ctx *fiber.Ctx) error {
|
|||||||
userLink = "незарегистрированного пользователя"
|
userLink = "незарегистрированного пользователя"
|
||||||
}
|
}
|
||||||
|
|
||||||
message := fmt.Sprintf("Вам пришло сообщение от %s сссылка на пользователя с %s, ссылка на чат - %s",
|
var message string
|
||||||
userLink, domain, supportLink)
|
if request.System {
|
||||||
|
message = fmt.Sprintf("СИСТЕМНАЯ ОШИБКА! Произошла ошибка в сообщении от %s c %s. Ссылка на чат: %s", userLink, domain, supportLink)
|
||||||
|
} else {
|
||||||
|
message = fmt.Sprintf("Вам пришло сообщение от %s ссылка на пользователя с %s, ссылка на чат - %s",
|
||||||
|
userLink, domain, supportLink)
|
||||||
|
}
|
||||||
|
|
||||||
if _, err := t.notifier.Send(telebot.ChatID(t.tgChatID), message); err != nil {
|
if _, err := t.notifier.Send(telebot.ChatID(t.tgChatID), message); err != nil {
|
||||||
t.zapLogger.Error("CAN NOT NOTIFY", zap.Error(err))
|
t.zapLogger.Error("CAN NOT NOTIFY", zap.Error(err))
|
||||||
@ -291,6 +299,7 @@ type GetMessagesReq struct {
|
|||||||
TicketID string `json:"ticket"`
|
TicketID string `json:"ticket"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo тут стоит фильтровать по system?
|
||||||
func (t *TicketController) GetMessages(ctx *fiber.Ctx) error {
|
func (t *TicketController) GetMessages(ctx *fiber.Ctx) error {
|
||||||
var request GetMessagesReq
|
var request GetMessagesReq
|
||||||
if err := ctx.BodyParser(&request); err != nil {
|
if err := ctx.BodyParser(&request); err != nil {
|
||||||
@ -376,7 +385,8 @@ func (t *TicketController) CloseTicket(ctx *fiber.Ctx) error {
|
|||||||
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := t.dal.PutMessage(ctx.Context(), "close", "close", "close", request.TicketID, []string{}); err != nil {
|
// system error flag
|
||||||
|
if _, err := t.dal.PutMessage(ctx.Context(), "close", "close", "close", request.TicketID, []string{}, false); err != nil {
|
||||||
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -477,10 +487,21 @@ func (t *TicketController) userTickets(ctx context.Context, userID string, outpu
|
|||||||
}
|
}
|
||||||
|
|
||||||
if data != nil {
|
if data != nil {
|
||||||
|
var filteredData []model.Ticket
|
||||||
|
for _, ticket := range data {
|
||||||
|
if !ticket.TopMessage.System {
|
||||||
|
filteredData = append(filteredData, ticket)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data = filteredData
|
||||||
|
|
||||||
output <- GetTicketsResp{data, count}
|
output <- GetTicketsResp{data, count}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := t.dal.WatchTickets(ctx, userID, func(ticket model.Ticket) error {
|
if err := t.dal.WatchTickets(ctx, userID, func(ticket model.Ticket) error {
|
||||||
|
if ticket.TopMessage.System {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
output <- ticket
|
output <- ticket
|
||||||
return nil
|
return nil
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@ -538,7 +559,9 @@ func (t *TicketController) Subscribe(ctx context.Context) chan interface{} {
|
|||||||
|
|
||||||
if err := t.dal.WatchMessages(ctx, ticketID,
|
if err := t.dal.WatchMessages(ctx, ticketID,
|
||||||
func(message model.Message) error {
|
func(message model.Message) error {
|
||||||
output <- message
|
if !message.System {
|
||||||
|
output <- message
|
||||||
|
}
|
||||||
|
|
||||||
//if err := h.dal.SetShown(ctx, message.ID, sess.Session); err != nil {
|
//if err := h.dal.SetShown(ctx, message.ID, sess.Session); err != nil {
|
||||||
// fmt.Println("3", err)
|
// fmt.Println("3", err)
|
||||||
@ -618,7 +641,9 @@ func (t *TicketController) Subscribe(ctx context.Context) chan interface{} {
|
|||||||
|
|
||||||
if err := t.dal.WatchMessages(ctx, ticketID,
|
if err := t.dal.WatchMessages(ctx, ticketID,
|
||||||
func(message model.Message) error {
|
func(message model.Message) error {
|
||||||
output <- message
|
if !message.System {
|
||||||
|
output <- message
|
||||||
|
}
|
||||||
|
|
||||||
//if err := h.dal.SetShown(ctx, message.ID, sess.Session); err != nil {
|
//if err := h.dal.SetShown(ctx, message.ID, sess.Session); err != nil {
|
||||||
// fmt.Println("3", err)
|
// fmt.Println("3", err)
|
||||||
|
@ -13,6 +13,8 @@ type Message struct {
|
|||||||
Shown map[string]int `bson:"Shown" json:"shown"`
|
Shown map[string]int `bson:"Shown" json:"shown"`
|
||||||
RequestScreenshot string `bson:"RequestScreenshot" json:"request_screenshot"`
|
RequestScreenshot string `bson:"RequestScreenshot" json:"request_screenshot"`
|
||||||
|
|
||||||
|
System bool `bson:"System" json:"system"`
|
||||||
|
|
||||||
CreatedAt time.Time `bson:"CreatedAt" json:"created_at"`
|
CreatedAt time.Time `bson:"CreatedAt" json:"created_at"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,7 +30,7 @@ type Ticket struct {
|
|||||||
UserID string `bson:"UserID" json:"user"`
|
UserID string `bson:"UserID" json:"user"`
|
||||||
SessionID string `bson:"SessionID" json:"sess"`
|
SessionID string `bson:"SessionID" json:"sess"`
|
||||||
AnswererID string `bson:"AnswererID" json:"ans"`
|
AnswererID string `bson:"AnswererID" json:"ans"`
|
||||||
Origin string `bson:"origin" json:"origin"`
|
Origin string `bson:"origin" json:"origin"`
|
||||||
|
|
||||||
State string `bson:"State" json:"state"`
|
State string `bson:"State" json:"state"`
|
||||||
TopMessage Message `bson:"TopMessage" json:"top_message"`
|
TopMessage Message `bson:"TopMessage" json:"top_message"`
|
||||||
|
@ -128,7 +128,7 @@ func (d *DAL) CreateAccountIndex(ctx context.Context) error {
|
|||||||
func (d *DAL) PutMessage(
|
func (d *DAL) PutMessage(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
message, userID, sessionID, ticketID string,
|
message, userID, sessionID, ticketID string,
|
||||||
files []string,
|
files []string, system bool,
|
||||||
) (*model.Message, error) {
|
) (*model.Message, error) {
|
||||||
insertable := model.Message{
|
insertable := model.Message{
|
||||||
ID: xid.New().String(),
|
ID: xid.New().String(),
|
||||||
@ -138,6 +138,7 @@ func (d *DAL) PutMessage(
|
|||||||
Message: message,
|
Message: message,
|
||||||
Files: files,
|
Files: files,
|
||||||
Shown: map[string]int{},
|
Shown: map[string]int{},
|
||||||
|
System: system,
|
||||||
CreatedAt: time.Now(),
|
CreatedAt: time.Now(),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,7 +187,7 @@ func (d *DAL) PutSCResponse(
|
|||||||
|
|
||||||
func (d *DAL) PutSCRequest(
|
func (d *DAL) PutSCRequest(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
userID, sessionID, ticketID string,
|
userID, sessionID, ticketID string, system bool,
|
||||||
) (*model.Message, error) {
|
) (*model.Message, error) {
|
||||||
insertable := model.Message{
|
insertable := model.Message{
|
||||||
ID: xid.New().String(),
|
ID: xid.New().String(),
|
||||||
@ -197,6 +198,7 @@ func (d *DAL) PutSCRequest(
|
|||||||
Files: []string{},
|
Files: []string{},
|
||||||
Shown: map[string]int{},
|
Shown: map[string]int{},
|
||||||
RequestScreenshot: "acquisition",
|
RequestScreenshot: "acquisition",
|
||||||
|
System: system,
|
||||||
CreatedAt: time.Now(),
|
CreatedAt: time.Now(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user