Files
coloquio_api/routes/enviar_email.js
T
2020-02-14 20:13:18 -06:00

81 lines
2.4 KiB
JavaScript

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_email', async(req, res) => {
let id_persona;
try {
let n = req.query.correo;
console.log(req.query, n);
n = depurado(n);
let cad = `select id_persona from persona where correo_electronico='${n}'`;
let respuesta = await query(cad);
console.log(n);
console.log(respuesta);
if (respuesta.length == 0)
return res.status(400).json({ error: false, msj: "El correo aun 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: 'alphabetic'
});
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: 'prueba_no_sirve@coloquio_eduacion.com',
to: `${correo}`,
subject: 'Nueva contraseña Coloquio de Educacion FES-Acatlan',
html: `La 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