From 2a0f649f5928338cbbf930d38be992e777f11f1b Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Mon, 11 Jan 2021 06:04:55 -0600 Subject: [PATCH] linea api cambiar password --- server/controller/CuestionarioAlumno/get.js | 78 +++++++++---------- .../controller/Usuario/newPasswordAlumno.js | 40 ++++++++++ .../Usuario/newPasswordResponsable.js | 33 ++++++++ server/routes/Usuario.js | 24 +++++- 4 files changed, 135 insertions(+), 40 deletions(-) create mode 100644 server/controller/Usuario/newPasswordAlumno.js create mode 100644 server/controller/Usuario/newPasswordResponsable.js diff --git a/server/controller/CuestionarioAlumno/get.js b/server/controller/CuestionarioAlumno/get.js index ddf9538..cbda239 100644 --- a/server/controller/CuestionarioAlumno/get.js +++ b/server/controller/CuestionarioAlumno/get.js @@ -26,46 +26,46 @@ const get = async (body) => { for (let i = 0; i < res.length; i++) { data.push({ - idServicio: res[i].dataValues.idServicio, - clavePrograma: res[i].dataValues.Programa.clavePrograma, - usuario: res[i].dataValues.Usuario.usuario, - nombre: res[i].dataValues.Usuario.nombre, + idServicio: res[i].idServicio, + clavePrograma: res[i].Programa.clavePrograma, + usuario: res[i].Usuario.usuario, + nombre: res[i].Usuario.nombre, idCuestionarioAlumno: - res[i].dataValues.CuestionarioAlumno.idCuestionarioAlumno, - sexo: res[i].dataValues.CuestionarioAlumno.sexo, - edad: res[i].dataValues.CuestionarioAlumno.edad, - servicioMedico: res[i].dataValues.CuestionarioAlumno.servicioMedico, - p1: res[i].dataValues.CuestionarioAlumno.p1, - p2: res[i].dataValues.CuestionarioAlumno.p2, - p3: res[i].dataValues.CuestionarioAlumno.p3, - p4: res[i].dataValues.CuestionarioAlumno.p4, - p5: res[i].dataValues.CuestionarioAlumno.p5, - p6: res[i].dataValues.CuestionarioAlumno.p6, - p7: res[i].dataValues.CuestionarioAlumno.p7, - p8: res[i].dataValues.CuestionarioAlumno.p8, - p9: res[i].dataValues.CuestionarioAlumno.p9, - p10: res[i].dataValues.CuestionarioAlumno.p10, - p11: res[i].dataValues.CuestionarioAlumno.p11, - p12: res[i].dataValues.CuestionarioAlumno.p12, - p13: res[i].dataValues.CuestionarioAlumno.p13, - p14: res[i].dataValues.CuestionarioAlumno.p14, - p15: res[i].dataValues.CuestionarioAlumno.p15, - p16: res[i].dataValues.CuestionarioAlumno.p16, - p17: res[i].dataValues.CuestionarioAlumno.p17, - p18: res[i].dataValues.CuestionarioAlumno.p18, - p19: res[i].dataValues.CuestionarioAlumno.p19, - p20: res[i].dataValues.CuestionarioAlumno.p20, - p21: res[i].dataValues.CuestionarioAlumno.p21, - p22: res[i].dataValues.CuestionarioAlumno.p22, - p23: res[i].dataValues.CuestionarioAlumno.p23, - p24: res[i].dataValues.CuestionarioAlumno.p24, - p25: res[i].dataValues.CuestionarioAlumno.p25, - p26: res[i].dataValues.CuestionarioAlumno.p26, - p27: res[i].dataValues.CuestionarioAlumno.p27, - p28: res[i].dataValues.CuestionarioAlumno.p28, - p29: res[i].dataValues.CuestionarioAlumno.p29, - p30: res[i].dataValues.CuestionarioAlumno.p30, - createdAt: res[i].dataValues.CuestionarioAlumno.createdAt, + res[i].CuestionarioAlumno.idCuestionarioAlumno, + sexo: res[i].CuestionarioAlumno.sexo, + edad: res[i].CuestionarioAlumno.edad, + servicioMedico: res[i].CuestionarioAlumno.servicioMedico, + p1: res[i].CuestionarioAlumno.p1, + p2: res[i].CuestionarioAlumno.p2, + p3: res[i].CuestionarioAlumno.p3, + p4: res[i].CuestionarioAlumno.p4, + p5: res[i].CuestionarioAlumno.p5, + p6: res[i].CuestionarioAlumno.p6, + p7: res[i].CuestionarioAlumno.p7, + p8: res[i].CuestionarioAlumno.p8, + p9: res[i].CuestionarioAlumno.p9, + p10: res[i].CuestionarioAlumno.p10, + p11: res[i].CuestionarioAlumno.p11, + p12: res[i].CuestionarioAlumno.p12, + p13: res[i].CuestionarioAlumno.p13, + p14: res[i].CuestionarioAlumno.p14, + p15: res[i].CuestionarioAlumno.p15, + p16: res[i].CuestionarioAlumno.p16, + p17: res[i].CuestionarioAlumno.p17, + p18: res[i].CuestionarioAlumno.p18, + p19: res[i].CuestionarioAlumno.p19, + p20: res[i].CuestionarioAlumno.p20, + p21: res[i].CuestionarioAlumno.p21, + p22: res[i].CuestionarioAlumno.p22, + p23: res[i].CuestionarioAlumno.p23, + p24: res[i].CuestionarioAlumno.p24, + p25: res[i].CuestionarioAlumno.p25, + p26: res[i].CuestionarioAlumno.p26, + p27: res[i].CuestionarioAlumno.p27, + p28: res[i].CuestionarioAlumno.p28, + p29: res[i].CuestionarioAlumno.p29, + p30: res[i].CuestionarioAlumno.p30, + createdAt: res[i].CuestionarioAlumno.createdAt, }); } try { diff --git a/server/controller/Usuario/newPasswordAlumno.js b/server/controller/Usuario/newPasswordAlumno.js new file mode 100644 index 0000000..9c9b94a --- /dev/null +++ b/server/controller/Usuario/newPasswordAlumno.js @@ -0,0 +1,40 @@ +const gmail = require('../../helper/gmail'); +const correos = require('../../helper/correos'); +const encriptar = require('../../helper/encriptar'); +const validar = require('../../helper/validar'); +const Usuario = require('../../db/tablas/Usuario'); +const Servicio = require('../../db/tablas/Servicio'); + +const newPasswordAlumno = async (body) => { + let idServicio = await validar.validarId(body.idServicio); + let pasword = encriptar.generarPassword(); + let idUsuario; + + return Servicio.findOne({ + where: { idServicio }, + include: [{ model: Usuario }], + }) + .then((res) => { + if (!res) throw new Error('No existe este Servicio Social.'); + if (res.Usuario.idTipoUsuario != 3) + throw new Error('Este usuario no es de tipo alumno.'); + + let correo = correos.preRegistro(pasword, res.Usuario.nombre); + + idUsuario = res.idUsuario; + return gmail(correo.subject, res.correo, correo.msj); + }) + .then((res) => { + return Usuario.update( + { pasword: encriptar.encriptar(pasword) }, + { where: { idUsuario } } + ); + }) + .then((res) => { + return { + message: 'Se envio un correo con una contraseƱa nueva al alumno.', + }; + }); +}; + +module.exports = newPasswordAlumno; diff --git a/server/controller/Usuario/newPasswordResponsable.js b/server/controller/Usuario/newPasswordResponsable.js new file mode 100644 index 0000000..329069c --- /dev/null +++ b/server/controller/Usuario/newPasswordResponsable.js @@ -0,0 +1,33 @@ +const gmail = require('../../helper/gmail'); +const correos = require('../../helper/correos'); +const encriptar = require('../../helper/encriptar'); +const validar = require('../../helper/validar'); +const Usuario = require('../../db/tablas/Usuario'); + +const newPasswordResponsable = async (body) => { + let idUsuario = await validar.validarId(body.idUsuario); + let pasword = encriptar.generarPassword(); + + return Usuario.findOne({ where: { idUsuario } }) + .then((res) => { + if (!res) throw new Error('No existe este Usuario.'); + if (res.Usuario.idTipoUsuario != 2) + throw new Error('Este usuario no es de tipo alumno.'); + + let correo = correos.enviarSec(pasword, res.correo, res.nombre); + return gmail(correo.subject, res.correo, correo.msj); + }) + .then((res) => { + return Usuario.update( + { pasword: encriptar.encriptar(pasword) }, + { where: { idUsuario } } + ); + }) + .then((res) => { + return { + message: 'Se envio un correo con una contraseƱa nueva al responsable.', + }; + }); +}; + +module.exports = newPasswordResponsable; diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js index 20fa115..665a825 100644 --- a/server/routes/Usuario.js +++ b/server/routes/Usuario.js @@ -6,6 +6,8 @@ const escolares = require('../controller/Usuario/escolares'); const login = require('../controller/Usuario/login'); const responsable = require('../controller/Usuario/responsable'); const responsableUpdate = require('../controller/Usuario/responsableUpdate'); +const newPasswordAlumno = require('../controller/Usuario/newPasswordAlumno'); +const newPasswordResponsable = require('../controller/Usuario/newPasswordResponsable'); app.post(`${route}/login`, (req, res) => { return login(req.body) @@ -37,7 +39,7 @@ app.get(`${route}/responsable`, verificaToken, (req, res) => { }); }); -app.put(`${route}/responsable/update` /*, verificaToken*/, (req, res) => { +app.put(`${route}/responsable/update`, verificaToken, (req, res) => { return responsableUpdate(req.body) .then((data) => { res.status(200).json(data); @@ -47,4 +49,24 @@ app.put(`${route}/responsable/update` /*, verificaToken*/, (req, res) => { }); }); +app.put(`${route}/new_password_alumno`, verificaToken, (req, res) => { + return newPasswordAlumno(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + +app.put(`${route}/new_password_responsable`, verificaToken, (req, res) => { + return newPasswordResponsable(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + module.exports = app;