From aec6a450771fc9186a2937d622d1b0e77890ea91 Mon Sep 17 00:00:00 2001 From: marsalva Date: Sat, 14 Mar 2026 19:47:39 +0000 Subject: [PATCH] Actualizar server.js --- server.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server.js b/server.js index 03d5f01..b0efa45 100644 --- a/server.js +++ b/server.js @@ -1775,6 +1775,7 @@ async function triggerWhatsAppEvent(ownerId, serviceId, eventType) { // ========================================== app.get("/providers/credentials", authMiddleware, async (req, res) => { try { + // 🛠️ FIX 1: Añadimos 'auto_dispatch' a la consulta para que el botón "recuerde" si está encendido const q = await pool.query("SELECT provider, username, last_sync, status, auto_dispatch FROM provider_credentials WHERE owner_id=$1", [req.user.accountId]); res.json({ ok: true, credentials: q.rows }); } catch (e) { @@ -1786,15 +1787,16 @@ app.post("/providers/credentials", authMiddleware, async (req, res) => { try { const { provider, username, password, auto_dispatch } = req.body; - // 🛡️ PARCHE: Si no envían contraseña nueva, mandamos null para que mantenga la vieja + // Si no hay contraseña, pasamos null const passwordSafe = (password && password.trim() !== "") ? Buffer.from(password).toString('base64') : null; - // Convertimos a booleano por seguridad const autoDispatchBool = auto_dispatch === true; + // 🛠️ FIX 2: Usamos COALESCE($4, '') en el INSERT. + // Si es la primera vez y no pones clave, guarda un texto vacío ('') en vez de null para que la base de datos no explote con error 500. await pool.query(` INSERT INTO provider_credentials (owner_id, provider, username, password_hash, auto_dispatch) - VALUES ($1, $2, $3, $4, $5) + VALUES ($1, $2, $3, COALESCE($4, ''), $5) ON CONFLICT (owner_id, provider) DO UPDATE SET username = EXCLUDED.username, password_hash = COALESCE($4, provider_credentials.password_hash), @@ -1804,7 +1806,7 @@ app.post("/providers/credentials", authMiddleware, async (req, res) => { res.json({ ok: true }); } catch (e) { - console.error("🚨 CRASH EN CREDENCIALES:", e.message); + console.error("Error guardando credenciales:", e.message); res.status(500).json({ ok: false }); } });