Actualizar server.js

This commit is contained in:
2026-03-17 13:42:10 +00:00
parent ceaf824a87
commit f4bbb18eb5

View File

@@ -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