Actualizar server.js

This commit is contained in:
2026-02-15 21:06:48 +00:00
parent 996846f54b
commit 7318f4e528

View File

@@ -434,6 +434,20 @@ app.post("/providers/automate/:id", authMiddleware, async (req, res) => {
if (!guild_id || !cp) return res.status(400).json({ ok: false, error: "Faltan datos (Gremio o CP)" });
// 1. Obtener datos del expediente para el mensaje
const serviceQ = await pool.query("SELECT raw_data, provider FROM scraped_services WHERE id = $1", [id]);
if (serviceQ.rowCount === 0) return res.status(404).json({ ok: false, error: "Expediente no encontrado" });
const raw = serviceQ.rows[0].raw_data;
const nombreCliente = raw["Nombre Cliente"] || raw["CLIENTE"] || "Cliente";
const poblacion = raw["Población"] || raw["POBLACION-PROVINCIA"] || "---";
const gremioNombre = raw["Gremio"] || "Servicio General";
// Limpiar dirección: Quitar números y pisos (regex para detectar números y lo que sigue)
const direccionCompleta = raw["Dirección"] || raw["DOMICILIO"] || "";
const direccionLimpia = direccionCompleta.split(/[0-9]/)[0].trim();
// 2. Buscar operarios disponibles
const workersQ = await pool.query(`
SELECT u.id, u.full_name, u.phone
FROM users u
@@ -448,15 +462,36 @@ app.post("/providers/automate/:id", authMiddleware, async (req, res) => {
const worker = workersQ.rows[Math.floor(Math.random() * workersQ.rows.length)];
const token = crypto.randomBytes(16).toString('hex');
const expiresAt = new Date(Date.now() + 5 * 60 * 1000);
const expiresAt = new Date(Date.now() + 5 * 60 * 1000); // 5 Minutos
// Formatear hora de caducidad (HH:mm)
const horaCaducidad = expiresAt.toLocaleTimeString('es-ES', { hour: '2-digit', minute: '2-digit' });
await pool.query(`INSERT INTO assignment_pings (scraped_id, user_id, token, expires_at) VALUES ($1, $2, $3, $4)`, [id, worker.id, token, expiresAt]);
// 3. Construir mensaje de WhatsApp con toda la información solicitada
const link = `https://web.integrarepara.es/aceptar.html?t=${token}`;
await sendWhatsAppAuto(worker.phone, `🛠️ *NUEVO SERVICIO*\nCP: ${cp}\n🔗 ${link}`);
const mensaje = `🛠️ *NUEVO SERVICIO ASIGNADO A TI*
👤 *Operario:* ${worker.full_name}
📋 *Gremio:* ${gremioNombre}
*DATOS DEL CLIENTE:*
👤 *Nombre:* ${nombreCliente}
📍 *Zona:* ${direccionLimpia}
🏙️ *Población:* ${poblacion} (CP: ${cp})
⚠️ *ATENCIÓN:* Tienes hasta las *${horaCaducidad}* para revisar los datos completos y ACEPTAR el servicio en el siguiente enlace:
🔗 ${link}`;
await sendWhatsAppAuto(worker.phone, mensaje);
res.json({ ok: true, message: "Automatismo iniciado con " + worker.full_name });
} catch (e) { res.status(500).json({ ok: false, error: e.message }); }
} catch (e) {
console.error("Error Automate:", e.message);
res.status(500).json({ ok: false, error: e.message });
}
});
app.post("/providers/import/:id", authMiddleware, async (req, res) => {