package controllers import ( "strconv" "github.com/gofiber/fiber/v2" "github.com/sujit-baniya/fiber-boilerplate/pkg/models" ) // RENDER func ProvServidor(c *fiber.Ctx) error { data := fiber.Map{ "user": c.Locals("user").(map[string]interface{}), "modules": c.Locals("userModules"), } if err := c.Render("prov_servidor", data, "layouts/main"); err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "message": "Error rendering template", "error": err.Error(), }) } return nil } func GetProvServidor(c *fiber.Ctx) error { searchQuery := c.Query("search", "") records, total, err := models.GetAllProvServidor(searchQuery) if err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "message": "Error retrieving records", "error": err.Error(), }) } return c.JSON(fiber.Map{ "registros": records, "total": total, "totalPages": 1, }) } func CreateProvServidor(c *fiber.Ctx) error { var m models.ProvServidor if err := c.BodyParser(&m); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "message": "Error parsing request body", "error": err.Error(), }) } if err := models.CreateProvServidor(m); err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "message": "Error creating proveedor de servidor", "error": err.Error(), }) } return c.Status(fiber.StatusCreated).JSON(m) } func UpdateProvServidor(c *fiber.Ctx) error { uid, err := strconv.ParseUint(c.Params("id"), 10, 32) if err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "message": "ID inválido", "error": err.Error(), }) } var m models.ProvServidor if err := c.BodyParser(&m); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "message": "Error al parsear el cuerpo de la solicitud", "error": err.Error(), }) } m.ID = uint(uid) if err := models.UpdateProvServidor(m); err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "message": "Error al actualizar el proveedor de servidor", "error": err.Error(), }) } return c.Status(fiber.StatusOK).JSON(m) } func DeleteProvServidor(c *fiber.Ctx) error { uid, err := strconv.ParseUint(c.Params("id"), 10, 32) if err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "message": "ID inválido", "error": err.Error(), }) } var m models.ProvServidor m.ID = uint(uid) if err := models.DeleteProvServidor(m); err != nil { return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ "message": "Error al eliminar el proveedor de servidor", "error": err.Error(), }) } return c.Status(fiber.StatusOK).JSON(fiber.Map{ "message": "Proveedor de servidor eliminado exitosamente", }) }