up
This commit is contained in:
@@ -73,7 +73,7 @@ func GetCloudflareUser(c *fiber.Ctx) error {
|
||||
}
|
||||
data, err := client.GetUser()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{"error": err.Error()})
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": data})
|
||||
}
|
||||
@@ -88,7 +88,7 @@ func GetCloudflareZones(c *fiber.Ctx) error {
|
||||
}
|
||||
data, err := client.GetZones()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{"error": err.Error()})
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": data})
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func GetCloudflareDNS(c *fiber.Ctx) error {
|
||||
}
|
||||
data, err := client.GetDNSRecords(zoneID)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{"error": err.Error()})
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": data, "zone_id": zoneID})
|
||||
}
|
||||
@@ -126,7 +126,7 @@ func GetCloudflareSSL(c *fiber.Ctx) error {
|
||||
}
|
||||
data, err := client.GetSSLCertificates(zoneID)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{"error": err.Error()})
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": data, "zone_id": zoneID})
|
||||
}
|
||||
@@ -145,7 +145,111 @@ func GetCloudflareFirewall(c *fiber.Ctx) error {
|
||||
}
|
||||
data, err := client.GetFirewallRules(zoneID)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{"error": err.Error()})
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": data, "zone_id": zoneID})
|
||||
}
|
||||
|
||||
// ─── DNS CRUD ─────────────────────────────────────────────────────────────────
|
||||
|
||||
// CreateCloudflareDNS crea un nuevo registro DNS en la zona (:zone_id).
|
||||
func CreateCloudflareDNS(c *fiber.Ctx) error {
|
||||
zoneID := c.Params("zone_id")
|
||||
if zoneID == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "zone_id requerido"})
|
||||
}
|
||||
var input services.CFDNSRecordInput
|
||||
if err := c.BodyParser(&input); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "body inválido"})
|
||||
}
|
||||
if input.Type == "" || input.Name == "" || input.Content == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "type, name y content son requeridos"})
|
||||
}
|
||||
if input.TTL == 0 {
|
||||
input.TTL = 1 // automático
|
||||
}
|
||||
client, err := cloudflareClient()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{
|
||||
"error": "No se encontró configuración activa de Cloudflare",
|
||||
})
|
||||
}
|
||||
record, err := client.CreateDNSRecord(zoneID, input)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.Status(fiber.StatusCreated).JSON(fiber.Map{"data": record})
|
||||
}
|
||||
|
||||
// UpdateCloudflareDNS actualiza (PUT completo) un registro DNS (:zone_id/:record_id).
|
||||
func UpdateCloudflareDNS(c *fiber.Ctx) error {
|
||||
zoneID := c.Params("zone_id")
|
||||
recordID := c.Params("record_id")
|
||||
if zoneID == "" || recordID == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "zone_id y record_id requeridos"})
|
||||
}
|
||||
var input services.CFDNSRecordInput
|
||||
if err := c.BodyParser(&input); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "body inválido"})
|
||||
}
|
||||
if input.Type == "" || input.Name == "" || input.Content == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "type, name y content son requeridos"})
|
||||
}
|
||||
if input.TTL == 0 {
|
||||
input.TTL = 1
|
||||
}
|
||||
client, err := cloudflareClient()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{
|
||||
"error": "No se encontró configuración activa de Cloudflare",
|
||||
})
|
||||
}
|
||||
record, err := client.UpdateDNSRecord(zoneID, recordID, input)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": record})
|
||||
}
|
||||
|
||||
// PatchCloudflareDNS actualiza parcialmente un registro DNS (:zone_id/:record_id).
|
||||
func PatchCloudflareDNS(c *fiber.Ctx) error {
|
||||
zoneID := c.Params("zone_id")
|
||||
recordID := c.Params("record_id")
|
||||
if zoneID == "" || recordID == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "zone_id y record_id requeridos"})
|
||||
}
|
||||
var input services.CFDNSRecordInput
|
||||
if err := c.BodyParser(&input); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "body inválido"})
|
||||
}
|
||||
client, err := cloudflareClient()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{
|
||||
"error": "No se encontró configuración activa de Cloudflare",
|
||||
})
|
||||
}
|
||||
record, err := client.PatchDNSRecord(zoneID, recordID, input)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"data": record})
|
||||
}
|
||||
|
||||
// DeleteCloudflareDNS elimina un registro DNS (:zone_id/:record_id).
|
||||
func DeleteCloudflareDNS(c *fiber.Ctx) error {
|
||||
zoneID := c.Params("zone_id")
|
||||
recordID := c.Params("record_id")
|
||||
if zoneID == "" || recordID == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "zone_id y record_id requeridos"})
|
||||
}
|
||||
client, err := cloudflareClient()
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{
|
||||
"error": "No se encontró configuración activa de Cloudflare",
|
||||
})
|
||||
}
|
||||
if err := client.DeleteDNSRecord(zoneID, recordID); err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
return c.JSON(fiber.Map{"message": "Registro DNS eliminado"})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user