const connection = require('../conf/connection.js'); const express = require('express'); const bcrypt = require('bcrypt'); const sendmail = require('sendmail')(); var app = express() var randomstring = require("randomstring"); function query(consulta) { return new Promise(function(resolve, reject) { connection.query(`${consulta}`, (error, results, files) => { if (error) reject(error); resolve(results); }); }) } function depurado(cadena) { if (cadena != null) { cadena = cadena.replace(/'/g, "''"); cadena = cadena.replace(/;/g, "m"); return cadena; } else return null; } app.get('/enviar_password', async(req, res) => { let id_persona; try { let n = req.query.correo; console.log(req.query); console.log(req.query, n); n = depurado(n); let cad = `select id_persona from persona where correo='${n}'`; console.log(cad); let respuesta = await query(cad); console.log("depurado: ", n); console.log("respuesta: ", respuesta); if (respuesta.length == 0) return res.status(400).json({ error: true, msj: "El correo aún no se ha registrado" }); else id_persona = respuesta[0].id_persona; } catch (err) { console.log("afuera ", err); res.status(400).json({ error: true, msj: "error al verificar el correo" }); } try { let nueva = randomstring.generate({ length: 10, charset: 'alphanumeric' }); let n_pasword = await bcrypt.hash(nueva, 10); let cad = `update persona set password='${n_pasword}' where id_persona=${id_persona};`; let respuesta = query(cad); respuesta.then(() => { let correo = req.query.correo; sendmail({ from: 'asinea103@fa.unam.mx', to: `${correo}`, subject: 'Recuperacion de contraseña ASINE', html: `Estimado usuario su nueva contraseña es: ${nueva}`, }, function(err, reply) { console.log(err && err.stack); console.dir(reply); }); }).catch(() => { return res.status(400).json({ error: true, msj: "error al actualizar la contraseña" }); }) res.status(200).json({ error: false, msj: "exito" }); } catch (err) { return res.status(400).json({ error: true, msj: "error al encriptar la contraseña" }); } }) module.exports = app