From 5f95e67595a536d0a910f92c671fd6993a377e61 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Mon, 17 Aug 2026 21:19:15 -0500 Subject: [PATCH] =?UTF-8?q?fix(api-v2):=20que=20el=20fallo=20de=20/vcard/i?= =?UTF-8?q?a=20quede=20en=20el=20log=20y=20distinga=20de=20qui=C3=A9n=20es?= =?UTF-8?q?=20el=20problema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- rest/controllers/api/ia_v2_controller.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rest/controllers/api/ia_v2_controller.go b/rest/controllers/api/ia_v2_controller.go index ee6ec53..a8030d3 100644 --- a/rest/controllers/api/ia_v2_controller.go +++ b/rest/controllers/api/ia_v2_controller.go @@ -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}) }