Actualizar server.js

This commit is contained in:
2026-02-24 21:10:15 +00:00
parent a257a87aba
commit dfa2b21f0b

View File

@@ -725,17 +725,27 @@ app.post("/public/portal/:token/book", async (req, res) => {
} }
}); });
// 3. OBTENER SOLICITUDES PARA EL PANEL DEL ADMIN // 3. OBTENER SOLICITUDES PARA EL PANEL DEL ADMIN Y APP OPERARIO
app.get("/agenda/requests", authMiddleware, async (req, res) => { app.get("/agenda/requests", authMiddleware, async (req, res) => {
try { try {
const q = await pool.query(` let query = `
SELECT s.id, s.service_ref, s.raw_data, u.full_name as assigned_name SELECT s.id, s.service_ref, s.raw_data, u.full_name as assigned_name
FROM scraped_services s FROM scraped_services s
LEFT JOIN users u ON s.assigned_to = u.id LEFT JOIN users u ON s.assigned_to = u.id
WHERE s.owner_id = $1 WHERE s.owner_id = $1
AND s.raw_data->>'appointment_status' = 'pending' AND s.raw_data->>'appointment_status' = 'pending'
ORDER BY s.created_at ASC `;
`, [req.user.accountId]); const params = [req.user.accountId];
// Si es operario, solo ve sus propias solicitudes
if (req.user.role === 'operario' || req.user.role === 'operario_cerrado') {
query += ` AND s.assigned_to = $2`;
params.push(req.user.sub);
}
query += ` ORDER BY s.created_at ASC`;
const q = await pool.query(query, params);
res.json({ ok: true, requests: q.rows }); res.json({ ok: true, requests: q.rows });
} catch (e) { res.status(500).json({ ok: false }); } } catch (e) { res.status(500).json({ ok: false }); }
}); });