118 lines
2.8 KiB
Go
Executable File
118 lines
2.8 KiB
Go
Executable File
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",
|
|
})
|
|
}
|