Actualizar server.js
This commit is contained in:
31
server.js
31
server.js
@@ -413,7 +413,7 @@ app.get("/discovery/keys/:provider", authMiddleware, async (req, res) => {
|
||||
try {
|
||||
const { provider } = req.params;
|
||||
|
||||
// CAMBIO: Añadimos 'ORDER BY id DESC LIMIT 1' para coger solo el último
|
||||
// Buscamos solo el último servicio para que la lista sea corta y real
|
||||
const rawServices = await pool.query(
|
||||
"SELECT raw_data FROM scraped_services WHERE owner_id=$1 AND provider=$2 ORDER BY id DESC LIMIT 1",
|
||||
[req.user.accountId, provider]
|
||||
@@ -423,19 +423,20 @@ app.get("/discovery/keys/:provider", authMiddleware, async (req, res) => {
|
||||
"SELECT original_key, target_key, is_ignored FROM variable_mappings WHERE owner_id=$1 AND provider=$2",
|
||||
[req.user.accountId, provider]
|
||||
);
|
||||
|
||||
const mapDict = {};
|
||||
mappings.rows.forEach(m => mapDict[m.original_key] = m);
|
||||
mappings.rows.forEach(m => {
|
||||
mapDict[m.original_key] = m;
|
||||
});
|
||||
|
||||
const discoverySet = new Set();
|
||||
const samples = {};
|
||||
|
||||
// Como solo hay 1 fila (la última), el bucle es corto y limpio
|
||||
rawServices.rows.forEach(row => {
|
||||
const data = row.raw_data;
|
||||
if (data && typeof data === 'object') {
|
||||
Object.keys(data).forEach(k => {
|
||||
discoverySet.add(k);
|
||||
// Guardamos el valor para mostrarlo de ejemplo
|
||||
if (!samples[k]) samples[k] = data[k];
|
||||
});
|
||||
}
|
||||
@@ -450,18 +451,9 @@ app.get("/discovery/keys/:provider", authMiddleware, async (req, res) => {
|
||||
|
||||
res.json({ ok: true, keys: result });
|
||||
|
||||
} catch (e) { res.status(500).json({ ok: false, error: e.message }); }
|
||||
});
|
||||
|
||||
const result = Array.from(discoverySet).map(key => ({
|
||||
original: key,
|
||||
sample: samples[key] || "(Vacío)",
|
||||
mappedTo: mapDict[key]?.target_key || "",
|
||||
ignored: mapDict[key]?.is_ignored || false
|
||||
})).sort((a, b) => a.original.localeCompare(b.original));
|
||||
|
||||
res.json({ ok: true, keys: result });
|
||||
} catch (e) { res.status(500).json({ ok: false, error: e.message }); }
|
||||
} catch (e) {
|
||||
res.status(500).json({ ok: false, error: e.message });
|
||||
}
|
||||
});
|
||||
|
||||
app.post("/discovery/save", authMiddleware, async (req, res) => {
|
||||
@@ -479,7 +471,12 @@ app.post("/discovery/save", authMiddleware, async (req, res) => {
|
||||
}
|
||||
await client.query('COMMIT');
|
||||
res.json({ ok: true });
|
||||
} catch (e) { await client.query('ROLLBACK'); res.status(500).json({ ok: false, error: e.message }); } finally { client.release(); }
|
||||
} catch (e) {
|
||||
await client.query('ROLLBACK');
|
||||
res.status(500).json({ ok: false, error: e.message });
|
||||
} finally {
|
||||
client.release();
|
||||
}
|
||||
});
|
||||
|
||||
// =========================
|
||||
|
||||
Reference in New Issue
Block a user