Actualizar server.js

This commit is contained in:
2026-03-15 10:47:52 +00:00
parent 07881c7ce5
commit e92758ea8a

View File

@@ -1812,7 +1812,7 @@ app.post("/providers/credentials", authMiddleware, async (req, res) => {
}); });
// ========================================== // ==========================================
// 📥 RECEPCIÓN DE SERVICIOS (EMBUDO INTELIGENTE CON AUTO-DESPACHO Y TODOTERRENO FINAL) // 📥 RECEPCIÓN DE SERVICIOS (EMBUDO INTELIGENTE FINAL Y DEFINITIVO)
// ========================================== // ==========================================
app.post("/providers/scraped", authMiddleware, async (req, res) => { app.post("/providers/scraped", authMiddleware, async (req, res) => {
try { try {
@@ -1833,15 +1833,20 @@ app.post("/providers/scraped", authMiddleware, async (req, res) => {
for (const svc of services) { for (const svc of services) {
// 2. Extraer la referencia (revisamos la raíz y el raw_data por si viene anidado) // 2. EXTRAER REFERENCIA (¡AQUÍ ESTABA EL FALLO! HomeServe lo llama "SERVICIO")
const ref = svc['Referencia'] || svc['Nº Siniestro'] || svc['Expediente'] || svc['service_ref'] || (svc.raw_data && svc.raw_data['Referencia']); const ref = svc['service_ref']
if (!ref) continue; || svc['SERVICIO']
|| svc['Referencia']
|| svc['Nº Siniestro']
|| svc['Expediente']
|| (svc.raw_data && (svc.raw_data['SERVICIO'] || svc.raw_data['Referencia'] || svc.raw_data['Nº Siniestro'] || svc.raw_data['Expediente']));
if (!ref) continue; // Si no hay referencia, lo salta. ¡Por eso no actualizaba!
// 🔥 3. DETECTOR DE URGENCIAS ANTI-FALLOS (APLASTAMIENTO TOTAL) 🔥 // 🔥 3. DETECTOR DE URGENCIAS ANTI-FALLOS (APLASTAMIENTO TOTAL) 🔥
let esUrgente = false; let esUrgente = false;
// Convertimos TODO el expediente (con todas sus subcapas) a un texto gigante, // Convertimos TODO el expediente (esté donde esté el dato) a un texto gigante
// en minúsculas y sin acentos para que no se escape nada.
const todoElTexto = JSON.stringify(svc).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""); const todoElTexto = JSON.stringify(svc).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
if ( if (
@@ -1852,10 +1857,10 @@ app.post("/providers/scraped", authMiddleware, async (req, res) => {
esUrgente = true; esUrgente = true;
} }
// 🕵️ 4. EXTRAER GREMIO (Ya viene en el objeto enviado) // 🕵️ 4. EXTRAER GREMIO
const guildId = svc.guild_id || svc['guild_id'] || (svc.raw_data && svc.raw_data.guild_id); const guildId = svc.guild_id || svc['guild_id'] || (svc.raw_data && svc.raw_data.guild_id);
// 5. Guardamos en la Base de Datos // 5. GUARDAMOS EN LA BASE DE DATOS
const insertRes = await pool.query(` const insertRes = await pool.query(`
INSERT INTO scraped_services (owner_id, provider, service_ref, raw_data, is_urgent) INSERT INTO scraped_services (owner_id, provider, service_ref, raw_data, is_urgent)
VALUES ($1, $2, $3, $4, $5) VALUES ($1, $2, $3, $4, $5)
@@ -1879,16 +1884,9 @@ app.post("/providers/scraped", authMiddleware, async (req, res) => {
const port = process.env.PORT || 3000; const port = process.env.PORT || 3000;
fetch(`http://127.0.0.1:${port}/providers/automate/${newSvcId}`, { fetch(`http://127.0.0.1:${port}/providers/automate/${newSvcId}`, {
method: 'POST', method: 'POST',
headers: { headers: { 'Content-Type': 'application/json', 'Authorization': req.headers.authorization },
'Content-Type': 'application/json', body: JSON.stringify({ guild_id: guildId, cp: cpFinal, useDelay: false })
'Authorization': req.headers.authorization }).catch(e => console.error("Error en auto-despacho:", e.message));
},
body: JSON.stringify({
guild_id: guildId,
cp: cpFinal,
useDelay: false
})
}).catch(e => console.error("Error en auto-despacho fetch:", e.message));
} }
count++; count++;