diff --git a/server/controller/Usuario/login.js b/server/controller/Usuario/login.js index e69de29..f20024d 100644 --- a/server/controller/Usuario/login.js +++ b/server/controller/Usuario/login.js @@ -0,0 +1,29 @@ +const encriptar = require('../../helper/encriptar'); +const validar = require('../../helper/validar'); +const Usuario = require('../../db/tablas/Usuario'); +const TipoUsuario = require('../../db/tablas/TipoUsuario'); + +const login = async (body) => { + let usuario = validar.validar(body.usuario, 'El usuario'); + let password = validar.validar(body.password, 'El password'); + + return Usuario.findOne({ + where: { usuario }, + include: [{ model: TipoUsuario }], + }).then((res) => { + if (!res) throw new Error('No existe este usuario.'); + if (encriptar.comparar(password, res.password)) { + return { + idUsuario: res.idUsuario, + usuario: res.usuario, + nombre: res.nombre, + TipoUsuario: { + idTipoUsuario: res.TipoUsuario.idTipoUsuario, + tipoUsuario: res.TipoUsuario.tipoUsuario, + }, + }; + } + }); +}; + +module.exports = login; diff --git a/server/db/data-fake.js b/server/db/data-fake.js index ca8dc0e..002a05d 100644 --- a/server/db/data-fake.js +++ b/server/db/data-fake.js @@ -1,4 +1,5 @@ const colors = require('colors'); +const encriptar = require('../helper/encriptar'); const Usuario = require('./tablas/Usuario'); const Programa = require('./tablas/Programa'); @@ -12,6 +13,7 @@ const dataResponsable = async () => { usuario: correos[i], idTipoUsuario: 2, nombre: nombres[i], + password: encriptar.encriptar('qwertyui'), activo: true, }); console.log(`Se inserto el responsable ${nombres[i]}`.magenta); @@ -41,7 +43,8 @@ const exec = async () => { await dataResponsable(); await dataPrograma(); console.log( - '\nSe ha instalado exitosamente la informacion falsa.\n'.underline.bold.green + '\nSe ha instalado exitosamente la informacion falsa.\n'.underline.bold + .green ); process.exit(); }; diff --git a/server/db/install.js b/server/db/install.js index e4d7bfb..48324d0 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -106,7 +106,7 @@ const dataAdmin = async () => { console.log('\nPaso 5) Instalando admin.'.bold.blue); await Usuario.create({ usuario: 'admin', - password: encriptar.encriptar('hola'), + password: encriptar.encriptar('qwertyui'), idTipoUsuario: 1, activo: true, nombre: 'COESI', diff --git a/server/helper/validar.js b/server/helper/validar.js index e922f41..60e10c4 100644 --- a/server/helper/validar.js +++ b/server/helper/validar.js @@ -13,6 +13,12 @@ const yaExiste = (campo) => { throw new Error(`${campo} ya se encuentra en uso.`); }; +const validar = (texto, campo) => { + noHay(texto, campo); + if (typeof texto !== 'string') noValido(campo); + return texto; +}; + const validarId = (id) => { let campo = 'El id'; @@ -76,6 +82,7 @@ const validarNumero = (numero) => { }; module.exports = { + validar, noValido, yaExiste, noHay, @@ -86,4 +93,3 @@ module.exports = { validarFecha, validarNumero, }; - diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js index 92b4df8..4ef80f3 100644 --- a/server/routes/Usuario.js +++ b/server/routes/Usuario.js @@ -2,28 +2,17 @@ const express = require('express'); const app = express(); const route = '/usuario'; const escolares = require('../controller/Usuario/escolares'); -// const nuevo = require('../controller/Servicio/ser'); -// const login = require('../controller/Usuario/login'); +const login = require('../controller/Usuario/login'); -// app.post(`${route}/nuevo`, (req, res) => { -// return nuevo(req.body) -// .then((data) => { -// res.status(201).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// }); - -// app.post(`${route}/login`, (req, res) => { -// return login(req.body) -// .then((data) => { -// res.status(201).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// }); +app.post(`${route}/login`, (req, res) => { + return login(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); app.get(`${route}/escolares`, (req, res) => { return escolares(req.query)