added system varible to create ticket and added filter for get messages
This commit is contained in:
parent
5e9e77fc16
commit
7cc01031cd
@ -46,6 +46,7 @@ func NewTicketController(deps Deps) *TicketController {
|
|||||||
type CreateTicketReq struct {
|
type CreateTicketReq struct {
|
||||||
Title string `json:"Title"`
|
Title string `json:"Title"`
|
||||||
Message string `json:"Message"`
|
Message string `json:"Message"`
|
||||||
|
System bool `json:"System"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateTicketResp struct {
|
type CreateTicketResp struct {
|
||||||
@ -106,7 +107,7 @@ func (t *TicketController) CreateTicket(ctx *fiber.Ctx) error {
|
|||||||
session.Id,
|
session.Id,
|
||||||
ticketID,
|
ticketID,
|
||||||
[]string{},
|
[]string{},
|
||||||
false, // system error flag
|
request.System, // 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()})
|
||||||
}
|
}
|
||||||
@ -300,12 +301,14 @@ 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 {
|
||||||
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()})
|
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
role := jwt_adapter.GetRole(ctx.Context())
|
||||||
|
|
||||||
result, err := t.dal.GetMessagesPage(ctx.Context(),
|
result, err := t.dal.GetMessagesPage(ctx.Context(),
|
||||||
request.Search,
|
request.Search,
|
||||||
request.TicketID,
|
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"})
|
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)
|
return ctx.Status(fiber.StatusOK).JSON(result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,6 +46,8 @@ paths:
|
|||||||
Message:
|
Message:
|
||||||
type: string
|
type: string
|
||||||
example: test ticket message
|
example: test ticket message
|
||||||
|
System:
|
||||||
|
type: boolean
|
||||||
/subscribe:
|
/subscribe:
|
||||||
get:
|
get:
|
||||||
summary: SSE метод для подписывания на изменения по всем тикетам доступным пользователю
|
summary: SSE метод для подписывания на изменения по всем тикетам доступным пользователю
|
||||||
|
Loading…
Reference in New Issue
Block a user