Files
servicio_social_api/server/controller/Usuario/login.js
T
2022-01-17 18:28:01 -06:00

48 lines
1.3 KiB
JavaScript

const { crearToken } = require('../../middleware/autentificacion');
// const validarPath = '../../db/tablas';
const validar = require('../../helper/validar');
const { comparar } = require('../../helper/encriptar');
const dbPath = '../../db/tablas';
const Usuario = require(`${dbPath}/Usuario`);
const TipoUsuario = require(`${dbPath}/TipoUsuario`);
const login = async (body) => {
const usuario = validar.validacionBasicaStr(
body.usuario,
'usuario',
true,
60
);
const password = validar.validarAlfanumerico(
body.password,
'contraseña',
false,
20
);
return Usuario.findOne({
where: { usuario },
attributes: ['idUsuario', 'activo', 'password'],
})
.then((res) => {
if (!res) throw new Error('No existe este usuario.');
if (!res.activo) throw new Error('Este usuario no esta activo.');
if (!comparar(password, res.password))
throw new Error('La contraseña es incorrecta');
return Usuario.findOne({
where: { idUsuario: res.idUsuario },
include: [{ model: TipoUsuario }],
attributes: ['idUsuario', 'usuario', 'nombre'],
});
})
.then((res) => ({
Usuario: res,
token: crearToken({
idUsuario: res.idUsuario,
idTipoUsuario: res.TipoUsuario.idTipoUsuario,
}),
}));
};
module.exports = login;