feat: área de soporte con webhook de correo y asignación de tickets
This commit is contained in:
@@ -322,8 +322,8 @@ func PortalCrearTicket(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
t := &models.ProyectoTicket{
|
||||
ProyectoID: proy.ID,
|
||||
PortalUserID: u.ID,
|
||||
ProyectoID: &proy.ID,
|
||||
PortalUserID: &u.ID,
|
||||
AutorNombre: u.Nombre,
|
||||
Titulo: req.Titulo,
|
||||
Descripcion: req.Descripcion,
|
||||
@@ -361,7 +361,7 @@ func PortalResponderTicket(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return c.Status(404).JSON(fiber.Map{"error": "Ticket no encontrado"})
|
||||
}
|
||||
if ticket.PortalUserID != u.ID {
|
||||
if ticket.PortalUserID == nil || *ticket.PortalUserID != u.ID {
|
||||
return c.Status(403).JSON(fiber.Map{"error": "Sin acceso"})
|
||||
}
|
||||
msg := &models.TicketMensaje{
|
||||
@@ -375,8 +375,10 @@ func PortalResponderTicket(c *fiber.Ctx) error {
|
||||
}
|
||||
go func() {
|
||||
proyNombre := ""
|
||||
if proy, err := models.GetProyectoByID(ticket.ProyectoID); err == nil {
|
||||
proyNombre = proy.Nombre
|
||||
if ticket.ProyectoID != nil {
|
||||
if proy, err := models.GetProyectoByID(*ticket.ProyectoID); err == nil {
|
||||
proyNombre = proy.Nombre
|
||||
}
|
||||
}
|
||||
services.DispatchTicketRespuestaCliente(ticket, req.Contenido, proyNombre)
|
||||
}()
|
||||
@@ -548,7 +550,7 @@ func PortalMarcarTicketLeido(c *fiber.Ctx) error {
|
||||
if err != nil || ticket == nil {
|
||||
return c.Status(404).JSON(fiber.Map{"error": "ticket no encontrado"})
|
||||
}
|
||||
if ticket.PortalUserID != u.ID {
|
||||
if ticket.PortalUserID == nil || *ticket.PortalUserID != u.ID {
|
||||
return c.Status(403).JSON(fiber.Map{"error": "sin permiso"})
|
||||
}
|
||||
_ = models.MarkTicketMessagesReadByPortal(uint(ticketID))
|
||||
|
||||
Reference in New Issue
Block a user