Actualizar server.js
This commit is contained in:
34
server.js
34
server.js
@@ -816,7 +816,39 @@ app.get("/clients/search", authMiddleware, async (req, res) => { try { const { p
|
||||
app.get("/companies", authMiddleware, async (req, res) => { try { const q = await pool.query("SELECT * FROM companies WHERE owner_id=$1 ORDER BY name ASC", [req.user.accountId]); res.json({ ok: true, companies: q.rows }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
app.post("/companies", authMiddleware, async (req, res) => { try { const { name } = req.body; await pool.query("INSERT INTO companies (name, owner_id) VALUES ($1, $2)", [name, req.user.accountId]); res.json({ ok: true }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
app.delete("/companies/:id", authMiddleware, async (req, res) => { try { await pool.query("DELETE FROM companies WHERE id=$1 AND owner_id=$2", [req.params.id, req.user.accountId]); res.json({ ok: true }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
app.get("/operators", authMiddleware, async (req, res) => { try { const q = await pool.query("SELECT id, full_name, zones FROM users WHERE owner_id=$1 AND role='operario' ORDER BY full_name ASC", [req.user.accountId]); res.json({ ok: true, operators: q.rows }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
|
||||
// AÑADIDO: Filtro estricto para que solo devuelva operarios que estén en estado 'active'
|
||||
app.get("/operators", authMiddleware, async (req, res) => {
|
||||
try {
|
||||
// Si nos pasan un guild_id, filtramos también por gremio
|
||||
const guildId = req.query.guild_id;
|
||||
let query = `
|
||||
SELECT u.id, u.full_name, u.zones
|
||||
FROM users u
|
||||
WHERE u.owner_id=$1 AND u.role='operario' AND u.status='active'
|
||||
`;
|
||||
const params = [req.user.accountId];
|
||||
|
||||
if (guildId) {
|
||||
query = `
|
||||
SELECT u.id, u.full_name, u.zones
|
||||
FROM users u
|
||||
JOIN user_guilds ug ON u.id = ug.user_id
|
||||
WHERE u.owner_id=$1 AND u.role='operario' AND u.status='active' AND ug.guild_id=$2
|
||||
`;
|
||||
params.push(guildId);
|
||||
}
|
||||
|
||||
query += ` ORDER BY u.full_name ASC`;
|
||||
|
||||
const q = await pool.query(query, params);
|
||||
res.json({ ok: true, operators: q.rows });
|
||||
} catch (e) {
|
||||
console.error("Error al cargar operarios:", e);
|
||||
res.status(500).json({ ok: false });
|
||||
}
|
||||
});
|
||||
|
||||
app.get("/zones", authMiddleware, async (req, res) => { try { const q = await pool.query("SELECT * FROM zones WHERE owner_id=$1 ORDER BY name ASC", [req.user.accountId]); res.json({ ok: true, zones: q.rows }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
app.post("/zones", authMiddleware, async (req, res) => { try { const { name } = req.body; await pool.query("INSERT INTO zones (name, owner_id) VALUES ($1, $2)", [name, req.user.accountId]); res.json({ ok: true }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
app.delete("/zones/:id", authMiddleware, async (req, res) => { try { await pool.query("DELETE FROM zones WHERE id=$1 AND owner_id=$2", [req.params.id, req.user.accountId]); res.json({ ok: true }); } catch (e) { res.status(500).json({ ok: false }); } });
|
||||
|
||||
Reference in New Issue
Block a user