Actualizar server.js

This commit is contained in:
2026-03-14 19:47:39 +00:00
parent bd72b8f94c
commit aec6a45077

View File

@@ -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 });
}
});