update
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/sujit-baniya/fiber-boilerplate/pkg/models"
|
||||
"github.com/sujit-baniya/fiber-boilerplate/pkg/services"
|
||||
)
|
||||
|
||||
// Función para manejar la solicitud de creación de un plan
|
||||
func CreatePlan(c *fiber.Ctx) error {
|
||||
var plan models.PlanRequest
|
||||
|
||||
// Parsear el cuerpo de la solicitud a la estructura PlanRequest
|
||||
if err := c.BodyParser(&plan); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": fmt.Sprintf("Error al parsear el cuerpo de la solicitud: %v", err),
|
||||
})
|
||||
}
|
||||
|
||||
// Obtener la configuración activa de DlocalApi
|
||||
dlocalConfig, err := models.GetLastActiveDlocalApi()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": "Error al obtener la configuración activa de DlocalApi.",
|
||||
})
|
||||
}
|
||||
|
||||
// Llamar al servicio para crear el plan
|
||||
response, err := services.CreatePlan(*dlocalConfig, plan)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": fmt.Sprintf("Error al crear el plan: %v", err),
|
||||
})
|
||||
}
|
||||
|
||||
// Devolver la respuesta exitosa
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||
"message": "Plan creado exitosamente.",
|
||||
"response": string(response),
|
||||
})
|
||||
}
|
||||
|
||||
func SeePlan(c *fiber.Ctx) error {
|
||||
planID := c.Params("planID")
|
||||
|
||||
// Verifica si se recibió correctamente
|
||||
if planID == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": "PlanID es requerido.",
|
||||
})
|
||||
}
|
||||
|
||||
// Obtener la configuración activa de DlocalApi
|
||||
dlocalConfig, err := models.GetLastActiveDlocalApi()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": "Error al obtener la configuración activa de DlocalApi.",
|
||||
})
|
||||
}
|
||||
|
||||
// Llamar al servicio para ver el plan
|
||||
response, err := services.SeePlan(*dlocalConfig, planID)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": fmt.Sprintf("Error al obtener el plan: %v", err),
|
||||
})
|
||||
}
|
||||
|
||||
// Devolver la respuesta exitosa
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||
"message": "Plan obtenido exitosamente.",
|
||||
"response": string(response),
|
||||
})
|
||||
}
|
||||
|
||||
func UpdatedPlan(c *fiber.Ctx) error {
|
||||
planID := c.Params("planID")
|
||||
var plan services.PlanUpdated
|
||||
// Parsear el cuerpo de la solicitud a la estructura PlanRequest
|
||||
if err := c.BodyParser(&plan); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": fmt.Sprintf("Error al parsear el cuerpo de la solicitud: %v", err),
|
||||
})
|
||||
}
|
||||
|
||||
// Obtener la configuración activa de DlocalApi
|
||||
dlocalConfig, err := models.GetLastActiveDlocalApi()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": "Error al obtener la configuración activa de DlocalApi.",
|
||||
})
|
||||
}
|
||||
|
||||
// Llamar al servicio para crear el plan
|
||||
response, err := services.UpdatedPlan(*dlocalConfig, plan, planID)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": fmt.Sprintf("Error al crear el plan: %v", err),
|
||||
})
|
||||
}
|
||||
|
||||
// Devolver la respuesta exitosa
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||
"message": "Plan actualizado exitosamente.",
|
||||
"response": string(response),
|
||||
})
|
||||
}
|
||||
|
||||
func DeactivatePlan(c *fiber.Ctx) error {
|
||||
planID := c.Params("planID")
|
||||
subscriptionId := c.Params("subscriptionId")
|
||||
|
||||
|
||||
|
||||
// Obtener la configuración activa de DlocalApi
|
||||
dlocalConfig, err := models.GetLastActiveDlocalApi()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": "Error al obtener la configuración activa de DlocalApi.",
|
||||
})
|
||||
}
|
||||
|
||||
// Llamar al servicio para crear el plan
|
||||
response, err := services.DeactivatePlan(*dlocalConfig, planID, subscriptionId)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": fmt.Sprintf("Error al crear el plan: %v", err),
|
||||
})
|
||||
}
|
||||
|
||||
// Devolver la respuesta exitosa
|
||||
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
||||
"message": "Suscripción cancelada exitosamente.",
|
||||
"response": string(response),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user