fix(api-v2): que el fallo de /vcard/ia quede en el log y distinga de quién es el problema

La integración muestra solo "error code: 502" y el motivo no quedaba escrito en
ningún lado. Ahora se loguea.

Y el estado separa los dos casos: 503 si falta configurar la IA de este lado,
502 si el que falló fue el proveedor. Con el mismo código para ambos no se sabe
a quién mirar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-17 21:19:15 -05:00
co-authored by Claude Opus 5
parent f5ffed7a13
commit 5f95e67595
+14 -1
View File
@@ -1,6 +1,9 @@
package controllers
import (
"log"
"strings"
"github.com/gofiber/fiber/v2"
"github.com/sujit-baniya/fiber-boilerplate/pkg/services"
)
@@ -33,7 +36,17 @@ func GenerarTextoIA(c *fiber.Ctx) error {
// podría usar la configuración del agente o la del Landing Generator.
texto, err := services.CompletarTextoIA("ia", body.Sistema, body.Prompt)
if err != nil {
return c.Status(502).JSON(fiber.Map{"error": err.Error()})
// Al log también: la integración suele mostrar solo el código de estado,
// y sin esta línea el motivo no queda registrado en ningún lado.
log.Printf("[IA v2] falló la generación: %v", err)
// 503 cuando falta configurar algo de este lado y 502 cuando el que
// falló fue el proveedor: son problemas de dueños distintos.
estado := 502
if strings.Contains(err.Error(), "configuración de IA") {
estado = 503
}
return c.Status(estado).JSON(fiber.Map{"error": err.Error()})
}
return c.JSON(fiber.Map{"texto": texto})
}