Actualizar robot.js
This commit is contained in:
17
robot.js
17
robot.js
@@ -214,12 +214,25 @@ async function syncAndArchive(ownerId, provider, currentWebRefs) {
|
||||
}
|
||||
|
||||
async function saveServiceToDB(ownerId, provider, ref, data) {
|
||||
console.log(`💾 Guardando ${provider.toUpperCase()} ${ref}...`);
|
||||
console.log(`💾 Guardando/Actualizando ${provider.toUpperCase()} ${ref}...`);
|
||||
|
||||
// Utilizamos el operador || de JSONB en Postgres para fusionar los datos.
|
||||
// EXCLUDED.raw_data contiene lo nuevo del scraper.
|
||||
// scraped_services.raw_data contiene lo que ya estaba (incluyendo assigned_to, etc).
|
||||
// Al poner EXCLUDED primero y concatenar lo existente después, preservamos los campos internos
|
||||
// que el scraper no conoce, y solo actualizamos lo que viene de fuera.
|
||||
|
||||
await pool.query(`
|
||||
INSERT INTO scraped_services (owner_id, provider, service_ref, raw_data, status)
|
||||
VALUES ($1, $2, $3, $4, 'pending')
|
||||
ON CONFLICT (owner_id, provider, service_ref)
|
||||
DO UPDATE SET raw_data = EXCLUDED.raw_data, created_at = NOW(), status = 'pending'
|
||||
DO UPDATE SET
|
||||
raw_data = EXCLUDED.raw_data || scraped_services.raw_data,
|
||||
status = CASE
|
||||
WHEN scraped_services.status = 'archived' THEN 'archived'
|
||||
WHEN scraped_services.status = 'imported' THEN 'imported'
|
||||
ELSE 'pending'
|
||||
END
|
||||
`, [ownerId, provider, ref, JSON.stringify(data)]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user