From 1e39bcaca534e5b28c6841e0f926a8f9cb297149 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Thu, 20 May 2021 13:50:31 -0500 Subject: [PATCH] list crear --- server/controller/Usuario/crear.js | 30 +++++++++++++++++++++++++- server/controller/Usuario/escolares.js | 1 + server/controller/Usuario/login.js | 5 +++-- server/db/tablas/Usuario.js | 1 + server/routes/Usuario.js | 11 ++++++++++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/server/controller/Usuario/crear.js b/server/controller/Usuario/crear.js index f92294d..27def62 100644 --- a/server/controller/Usuario/crear.js +++ b/server/controller/Usuario/crear.js @@ -3,6 +3,34 @@ const encriptar = require('../../helper/encriptar'); const validar = require('../../helper/validar'); const Usuario = require('../../db/tablas/Usuario'); -const crear = async (body) => {}; +const crear = async (body) => { + const idUsuario = validar.validarId(body.idUsuario); + const telefono = validar.validarNumero(body.telefono, false, 15); + const password = encriptar.generarPassword(); + let correo = '@pcpuma.acatlan.unam.mx'; + + return Usuario.findOne({ where: { idUsuario } }) + .then((res) => { + if (!res) throw new Error('No existe este usuario.'); + if (res.password) throw new Error('Este usuario ya fue registrado.'); + if (!res.activo) throw new Error('Este usuario no esta activo.'); + correo = res.usuario + correo; + return Usuario.update( + { + password: encriptar.encriptar(password), + telefono, + }, + { where: { idUsuario } } + ); + }) + .then((res) => { + // return gmail('Contraseña',correo,"") + return gmail('Contraseña', 'lemuelhelonmarquezrosas@gmail.com', password); + }) + .then((res) => ({ + message: + 'Se creo correctamente tu cuenta. Ingresa a tu correo Pc Puma. Te debe llegar un correo con tu contraseña.', + })); +}; module.exports = crear; diff --git a/server/controller/Usuario/escolares.js b/server/controller/Usuario/escolares.js index 1243f7a..44a8824 100644 --- a/server/controller/Usuario/escolares.js +++ b/server/controller/Usuario/escolares.js @@ -53,6 +53,7 @@ const escolares = async (body) => { delete res.dataValues.telefono; delete res.dataValues.multa; delete res.dataValues.idTipoUsuario; + delete res.dataValues.idCarrera; return res; }); }; diff --git a/server/controller/Usuario/login.js b/server/controller/Usuario/login.js index 0d80630..fbd9ca7 100644 --- a/server/controller/Usuario/login.js +++ b/server/controller/Usuario/login.js @@ -1,3 +1,4 @@ +const { Op } = require('sequelize'); const encriptar = require('../../helper/encriptar'); const validar = require('../../helper/validar'); const { crearTokenUsuario } = require('../../middleware/autentificacion'); @@ -14,11 +15,11 @@ const login = async (body) => { ); return Usuario.findOne({ - where: { usuario }, + where: { usuario, password: { [Op.ne]: null } }, include: [{ model: TipoUsuario }], }).then((res) => { if (!res) throw new Error('No existe este usuario.'); - // if (!res.activo) throw new Error('Este usuario no esta activo.'); + if (!res.activo) throw new Error('Este usuario fue desactivado.'); if (encriptar.comparar(password, res.password)) { delete res.dataValues.password; return { diff --git a/server/db/tablas/Usuario.js b/server/db/tablas/Usuario.js index 664b7eb..cd1ca31 100644 --- a/server/db/tablas/Usuario.js +++ b/server/db/tablas/Usuario.js @@ -63,6 +63,7 @@ Usuario.belongsTo(Carrera, { foreignKey: { name: 'idCarrera', type: DataTypes.INTEGER, + allowNull: true, }, }); diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js index f4cb5a8..f488d6b 100644 --- a/server/routes/Usuario.js +++ b/server/routes/Usuario.js @@ -6,6 +6,7 @@ const { verificaToken } = require('../middleware/autentificacion'); const route = '/usuario'; const controllerPath = '../controller/Usuario'; const cargaMasivaPosgrados = require(`${controllerPath}/cargaMasivaPosgrados`); +const crear = require(`${controllerPath}/crear`); const escolares = require(`${controllerPath}/escolares`); const login = require(`${controllerPath}/login`); const usuario = require(`${controllerPath}/usuario`); @@ -31,6 +32,16 @@ app.post( } ); +app.post(`${route}/crear`, (req, res) => { + return crear(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + app.post(`${route}/login`, (req, res) => { return login(req.body) .then((data) => {