This commit is contained in:
Lizandro Guarnizo
2026-05-16 13:44:32 -05:00
parent 85595e639e
commit 76a0c28b16
16 changed files with 225 additions and 725 deletions
+5 -31
View File
@@ -12,7 +12,6 @@ import (
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/pkg/models"
"github.com/sujit-baniya/fiber-boilerplate/pkg/services"
)
// ─── Admin pages ──────────────────────────────────────────────────────────────
@@ -67,7 +66,7 @@ func LoadProyectos(c *fiber.Ctx) error {
func CreateProyecto(c *fiber.Ctx) error {
type Req struct {
ClienteID string `json:"cliente_id"`
ClienteID uint `json:"cliente_id"`
Nombre string `json:"nombre"`
Slug string `json:"slug"`
Descripcion string `json:"descripcion"`
@@ -78,8 +77,7 @@ func CreateProyecto(c *fiber.Ctx) error {
if err := c.BodyParser(&req); err != nil {
return c.Status(400).JSON(fiber.Map{"error": err.Error()})
}
clienteID, _ := strconv.ParseUint(req.ClienteID, 10, 64)
if clienteID == 0 || strings.TrimSpace(req.Nombre) == "" {
if req.ClienteID == 0 || strings.TrimSpace(req.Nombre) == "" {
return c.Status(400).JSON(fiber.Map{"error": "cliente y nombre son requeridos"})
}
if req.Slug == "" {
@@ -92,7 +90,7 @@ func CreateProyecto(c *fiber.Ctx) error {
req.Estado = "activo"
}
p := &models.Proyecto{
ClienteID: uint(clienteID),
ClienteID: req.ClienteID,
Nombre: req.Nombre,
Slug: req.Slug,
Descripcion: req.Descripcion,
@@ -111,7 +109,7 @@ func UpdateProyecto(c *fiber.Ctx) error {
return c.Status(400).JSON(fiber.Map{"error": "ID inválido"})
}
type Req struct {
ClienteID string `json:"cliente_id"`
ClienteID uint `json:"cliente_id"`
Nombre string `json:"nombre"`
Slug string `json:"slug"`
Descripcion string `json:"descripcion"`
@@ -123,9 +121,8 @@ func UpdateProyecto(c *fiber.Ctx) error {
if err := c.BodyParser(&req); err != nil {
return c.Status(400).JSON(fiber.Map{"error": err.Error()})
}
updateClienteID, _ := strconv.ParseUint(req.ClienteID, 10, 64)
p := &models.Proyecto{
ClienteID: uint(updateClienteID),
ClienteID: req.ClienteID,
Nombre: req.Nombre,
Slug: req.Slug,
Descripcion: req.Descripcion,
@@ -459,11 +456,6 @@ func AdminResponderTicket(c *fiber.Ctx) error {
}
// Cambiar estado a en_progreso si estaba abierto
_ = models.UpdateTicketEstado(uint(ticketID), "en_progreso")
// Notificar al portal user
ticket, _ := models.GetTicketByID(uint(ticketID))
if ticket != nil {
go services.DispatchTicketRespuestaAdmin(ticket, req.Contenido, ticket.Proyecto.Nombre)
}
return c.Status(201).JSON(msg)
}
@@ -506,21 +498,3 @@ func mimeFromHeader(fh *multipart.FileHeader) string {
}
return ct
}
// ─── 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)
}