up
This commit is contained in:
@@ -67,3 +67,13 @@ func GetTicketsByPortalUser(portalUserID uint) ([]ProyectoTicket, error) {
|
||||
Preload("Mensajes").Order("created_at DESC").Find(&items).Error
|
||||
return items, err
|
||||
}
|
||||
|
||||
func GetAllTickets(estado string) ([]ProyectoTicket, error) {
|
||||
var items []ProyectoTicket
|
||||
db := app.Http.Database.DB.Preload("Mensajes").Order("created_at DESC")
|
||||
if estado != "" && estado != "todos" {
|
||||
db = db.Where("estado = ?", estado)
|
||||
}
|
||||
err := db.Find(&items).Error
|
||||
return items, err
|
||||
}
|
||||
|
||||
@@ -459,6 +459,24 @@ func AdminResponderTicket(c *fiber.Ctx) error {
|
||||
return c.Status(201).JSON(msg)
|
||||
}
|
||||
|
||||
// ─── Tickets global (admin) ──────────────────────────────────────────────────
|
||||
|
||||
func TicketsAdminIndex(c *fiber.Ctx) error {
|
||||
return c.Render("tickets_admin", fiber.Map{
|
||||
"user": c.Locals("user"),
|
||||
"modules": c.Locals("userModules"),
|
||||
}, "layouts/main")
|
||||
}
|
||||
|
||||
func GetAllTicketsAdmin(c *fiber.Ctx) error {
|
||||
estado := c.Query("estado", "todos")
|
||||
items, err := models.GetAllTickets(estado)
|
||||
if err != nil {
|
||||
return c.Status(500).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(items)
|
||||
}
|
||||
|
||||
// ─── helpers ──────────────────────────────────────────────────────────────────
|
||||
|
||||
func slugify(s string) string {
|
||||
|
||||
@@ -263,6 +263,42 @@ func UserRoutes(app fiber.Router) {
|
||||
protected.Post("/facturas/:id/upload-pdf", controllers.UploadFacturaPDF)
|
||||
protected.Get("/facturas/:id/download", controllers.DownloadFacturaPDF)
|
||||
|
||||
// ─── USITE Shield ─────────────────────────────────────────────────────────
|
||||
protected.Get("/shield", middlewares.MenuMiddleware, controllers.ShieldIndex)
|
||||
protected.Get("/loadshield", controllers.LoadShieldConfig)
|
||||
protected.Post("/saveshield", controllers.SaveShieldConfig)
|
||||
protected.Get("/shield/health", controllers.ShieldHealth)
|
||||
protected.Get("/shield/extension-version", controllers.ShieldExtensionVersion)
|
||||
protected.Get("/shield/logs", controllers.ShieldLogs)
|
||||
protected.Get("/shield/logs/stats", controllers.ShieldLogStats)
|
||||
protected.Get("/shield/review-requests", controllers.ShieldReviewRequests)
|
||||
protected.Put("/shield/review-requests/:id/approve", controllers.ShieldApproveRequest)
|
||||
protected.Put("/shield/review-requests/:id/reject", controllers.ShieldRejectRequest)
|
||||
protected.Get("/shield/whitelist", controllers.ShieldWhitelist)
|
||||
protected.Post("/shield/whitelist", controllers.ShieldAddWhitelist)
|
||||
protected.Delete("/shield/whitelist/:domain", controllers.ShieldDeleteWhitelist)
|
||||
protected.Get("/shield/blacklist", controllers.ShieldBlacklist)
|
||||
protected.Post("/shield/blacklist", controllers.ShieldAddBlacklist)
|
||||
protected.Delete("/shield/blacklist/:domain", controllers.ShieldDeleteBlacklist)
|
||||
protected.Get("/shield/reputation/:domain", controllers.ShieldReputation)
|
||||
protected.Put("/shield/reputation/:domain/score", controllers.ShieldAdjustScore)
|
||||
|
||||
// Tickets global (todos los proyectos)
|
||||
protected.Get("/tickets", middlewares.MenuMiddleware, controllers.TicketsAdminIndex)
|
||||
protected.Get("/tickets/data", controllers.GetAllTicketsAdmin)
|
||||
protected.Put("/tickets/:ticketID/estado", controllers.UpdateTicketEstadoAdmin)
|
||||
protected.Post("/tickets/:ticketID/mensaje", controllers.AdminResponderTicket)
|
||||
|
||||
// Configuración de notificaciones
|
||||
protected.Get("/notif-config", middlewares.MenuMiddleware, controllers.NotifConfigIndex)
|
||||
protected.Get("/notif-config/data", controllers.GetNotifConfigs)
|
||||
protected.Post("/notif-config", controllers.SaveNotifConfig)
|
||||
|
||||
// Notificaciones in-app del admin (bell)
|
||||
protected.Get("/mis-notifs", controllers.GetMisNotifs)
|
||||
protected.Put("/mis-notifs/:id/leida", controllers.MarcarNotifLeida)
|
||||
protected.Post("/mis-notifs/marcar-todas", controllers.MarcarTodasLeidas)
|
||||
|
||||
// ─── Planes dLocal (gestión desde panel protegido) ────────────────────────
|
||||
protected.Get("/dlocal/planes", apiControllers.SeePlanes)
|
||||
protected.Post("/dlocal/planes", apiControllers.CreatePlan)
|
||||
|
||||
Reference in New Issue
Block a user