added system varible to create ticket and added filter for get messages
This commit is contained in:
parent
08e65722ce
commit
1aa193a233
@ -46,6 +46,7 @@ func NewTicketController(deps Deps) *TicketController {
|
||||
type CreateTicketReq struct {
|
||||
Title string `json:"Title"`
|
||||
Message string `json:"Message"`
|
||||
System bool `json:"System"`
|
||||
}
|
||||
|
||||
type CreateTicketResp struct {
|
||||
@ -106,7 +107,7 @@ func (t *TicketController) CreateTicket(ctx *fiber.Ctx) error {
|
||||
session.Id,
|
||||
ticketID,
|
||||
[]string{},
|
||||
false, // system error flag
|
||||
request.System, // system error flag
|
||||
); err != nil {
|
||||
return ctx.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
@ -300,12 +301,14 @@ type GetMessagesReq struct {
|
||||
TicketID string `json:"ticket"`
|
||||
}
|
||||
|
||||
// todo тут стоит фильтровать по system?
|
||||
func (t *TicketController) GetMessages(ctx *fiber.Ctx) error {
|
||||
var request GetMessagesReq
|
||||
if err := ctx.BodyParser(&request); err != nil {
|
||||
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
|
||||
role := jwt_adapter.GetRole(ctx.Context())
|
||||
|
||||
result, err := t.dal.GetMessagesPage(ctx.Context(),
|
||||
request.Search,
|
||||
request.TicketID,
|
||||
@ -316,6 +319,16 @@ func (t *TicketController) GetMessages(ctx *fiber.Ctx) error {
|
||||
return ctx.Status(fiber.StatusNoContent).JSON(fiber.Map{"error": "No Content"})
|
||||
}
|
||||
|
||||
if role != "admin" {
|
||||
var filtered []model.Message
|
||||
for _, message := range result {
|
||||
if !message.System { // исключаем системные сообщения
|
||||
filtered = append(filtered, message)
|
||||
}
|
||||
}
|
||||
result = filtered
|
||||
}
|
||||
|
||||
return ctx.Status(fiber.StatusOK).JSON(result)
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,8 @@ paths:
|
||||
Message:
|
||||
type: string
|
||||
example: test ticket message
|
||||
System:
|
||||
type: boolean
|
||||
/subscribe:
|
||||
get:
|
||||
summary: SSE метод для подписывания на изменения по всем тикетам доступным пользователю
|
||||
|
Loading…
Reference in New Issue
Block a user