cruds update
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"math"
|
||||
"strconv"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/sujit-baniya/fiber-boilerplate/pkg/models"
|
||||
)
|
||||
|
||||
// RENDER
|
||||
func Servidor(c *fiber.Ctx) error {
|
||||
data := fiber.Map{
|
||||
"user": c.Locals("user").(map[string]interface{}),
|
||||
"modules": c.Locals("userModules"),
|
||||
}
|
||||
|
||||
if err := c.Render("servidor", data, "layouts/main"); err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"message": "Error rendering template",
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetServidor(c *fiber.Ctx) error {
|
||||
pageStr := c.Query("page", "1")
|
||||
page, err := strconv.Atoi(pageStr)
|
||||
if err != nil || page < 1 {
|
||||
page = 1
|
||||
}
|
||||
searchQuery := c.Query("search", "")
|
||||
limitStr := c.Query("limit", "10")
|
||||
limit, _ := strconv.Atoi(limitStr)
|
||||
offset := (page - 1) * limit
|
||||
|
||||
records, total, err := models.GetAllServidores(limit, offset, searchQuery)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"message": "Error retrieving records",
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
totalPages := int(math.Ceil(float64(total) / float64(limit)))
|
||||
return c.JSON(fiber.Map{
|
||||
"registros": records,
|
||||
"total": total,
|
||||
"totalPages": totalPages,
|
||||
"page": page,
|
||||
"limit": limit,
|
||||
})
|
||||
}
|
||||
|
||||
func GetServidorSelect(c *fiber.Ctx) error {
|
||||
records, err := models.GetAllServidoresSelect()
|
||||
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,
|
||||
})
|
||||
}
|
||||
|
||||
func CreateServidor(c *fiber.Ctx) error {
|
||||
var m models.Servidor
|
||||
|
||||
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.CreateServidor(m); err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"message": "Error creating servidor",
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusCreated).JSON(m)
|
||||
}
|
||||
|
||||
func UpdateServidor(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.Servidor
|
||||
|
||||
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.UpdateServidor(m); err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"message": "Error al actualizar el servidor",
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusOK).JSON(m)
|
||||
}
|
||||
|
||||
func DeleteServidor(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.Servidor
|
||||
m.ID = uint(uid)
|
||||
|
||||
if err := models.DeleteServidor(m); err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"message": "Error al eliminar el servidor",
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||
"message": "Servidor eliminado exitosamente",
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user