From f4bbb18eb5772f4d346c261d539b80c456410287 Mon Sep 17 00:00:00 2001 From: marsalva Date: Tue, 17 Mar 2026 13:42:10 +0000 Subject: [PATCH] Actualizar server.js --- server.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/server.js b/server.js index b194a25..3f6044e 100644 --- a/server.js +++ b/server.js @@ -1962,8 +1962,8 @@ app.post("/providers/scraped", authMiddleware, async (req, res) => { esUrgente = true; } - // DETECCIÓN DE GREMIO (Si no viene, lo buscamos nosotros) - let guildId = svc.guild_id || svc['guild_id'] || (svc.raw_data && svc.raw_data.guild_id); + // DETECCIÓN DE GREMIO (Si no viene, lo buscamos nosotros) + let guildId = svc.guild_id || svc['guild_id'] || (svc.raw_data && svc.raw_data.guild_id); if (!guildId) { for (const g of allGuilds.rows) { @@ -1975,8 +1975,10 @@ app.post("/providers/scraped", authMiddleware, async (req, res) => { } } - // 🚨 NUEVO: Detectar si el robot nos avisa de que el expediente está cerrado/archivado en origen - let scraperStatus = svc.status || 'pending'; + // 🚨 SOLUCIÓN DEFINITIVA PARA ARCHIVADOS: + // Solo archivamos si el robot manda explícitamente la palabra 'archived'. + // Si manda 'pending', 'in_progress', o nada, se asume 'pending' pero NO pisa la BD si ya existía. + let scraperStatus = (svc.status === 'archived') ? 'archived' : 'pending'; // GUARDAR EN BD const insertRes = await pool.query(` @@ -1984,7 +1986,12 @@ app.post("/providers/scraped", authMiddleware, async (req, res) => { VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (owner_id, provider, service_ref) DO UPDATE SET - status = CASE WHEN EXCLUDED.status = 'archived' THEN 'archived' ELSE scraped_services.status END, + -- Si el robot trae 'archived', lo machaca y lo archiva. + -- Si trae cualquier otra cosa, RESPETA el estado que tenga actualmente en nuestra BD. + status = CASE + WHEN EXCLUDED.status = 'archived' THEN 'archived' + ELSE scraped_services.status + END, raw_data = scraped_services.raw_data || EXCLUDED.raw_data, is_urgent = scraped_services.is_urgent OR EXCLUDED.is_urgent RETURNING id, automation_status