feat: área de soporte con webhook de correo y asignación de tickets

This commit is contained in:
Lizandro Guarnizo
2026-07-28 23:39:03 -05:00
parent 772a4a5656
commit 28affb5a55
16 changed files with 957 additions and 34 deletions
+4
View File
@@ -76,6 +76,10 @@ func RutasPublicas(web fiber.Router) {
// ─── Página de estado del sistema (Atlassian Statuspage) ────────────────
web.Get("/status", controllers.StatusPage)
// ─── Webhook de soporte (correo entrante) ────────────────────────────────
// Configurar en SendGrid/Mailgun: POST {HOST}/webhooks/soporte/{provider}
web.Post("/webhooks/soporte/:provider", controllers.SoporteWebhook)
// ─── Landing Generator (acceso con X-Landing-Secret) ─────────────────────
// Rutas públicas (sin secret) para lectura de preview y polling
web.Get("/landing/preview/:token", apiControllers.LandingGetSession)
+7
View File
@@ -454,6 +454,13 @@ func UserRoutes(app fiber.Router) {
protected.Get("/tickets/data", controllers.GetAllTicketsAdmin)
protected.Put("/tickets/:ticketID/estado", controllers.UpdateTicketEstadoAdmin)
protected.Post("/tickets/:ticketID/mensaje", controllers.AdminResponderTicket)
protected.Put("/tickets/:ticketID/asignar", controllers.AsignarTicket)
protected.Get("/tickets/admins", controllers.GetSoporteAdmins)
// Configuración webhook de soporte
protected.Get("/soporte/webhook", middlewares.MenuMiddleware, controllers.SoporteWebhookConfigPage)
protected.Get("/soporte/webhook/data", controllers.GetSoporteWebhookConfig)
protected.Post("/soporte/webhook", controllers.SaveSoporteWebhookConfig)
// Configuración de notificaciones
protected.Get("/notif-config", middlewares.MenuMiddleware, controllers.NotifConfigIndex)