diff --git a/server.js b/server.js index 9c93a84..3cb8288 100644 --- a/server.js +++ b/server.js @@ -1274,6 +1274,31 @@ app.get("/public/portal/:token/slots", async (req, res) => { }); +// 3. Obtener los Gremios Visibles para el Portal Público +app.get("/public/company/:id/guilds", async (req, res) => { + try { + const ownerId = parseInt(req.params.id) || 1; + + // 1. Leemos la configuración de esta empresa + const userQ = await pool.query("SELECT portal_settings FROM users WHERE id = $1", [ownerId]); + if(userQ.rowCount === 0) return res.status(404).json({ok: false}); + + const settings = userQ.rows[0].portal_settings || {}; + const visibleIds = settings.visible_guilds || []; + + // Si no seleccionó ninguno, devolvemos array vacío + if (visibleIds.length === 0) return res.json({ok: true, guilds: []}); + + // 2. Buscamos el ID y el Nombre real de esos gremios exactos + const guildsQ = await pool.query("SELECT id, name FROM guilds WHERE id = ANY($1::int[]) AND owner_id = $2 ORDER BY name ASC", [visibleIds, ownerId]); + + res.json({ok: true, guilds: guildsQ.rows}); + } catch(e) { + res.status(500).json({ok: false}); + } +}); + + // --- RUTA PARA GUARDAR LA CITA SOLICITADA POR EL CLIENTE --- app.post("/public/portal/:token/book", async (req, res) => { try {