const Usuario = require('../../db/tablas/Usuario'); const TipoUsuario = require('../../db/tablas/TipoUsuario'); const validar = require('../../helper/validar'); const { crearToken } = require('../../middleware/autentificacion'); const { comparar } = require('../../helper/encriptar'); const login = async (body) => { const usuario = validar.validacionBasicaStr( body.usuario, 'usuario', true, 30 ); const password = validar.validarAlfanumerico( body.password, 'contraseƱa', false, 30 ); return Usuario.findOne({ where: { usuario }, include: [{ model: TipoUsuario }], }).then((res) => { if (!res) throw new Error('No existe este usuario.'); if (res.idTipoUsuario !== 1) throw new Error('Este usuario no es de tipo admin.'); if (comparar(password, res.password)) { delete res.dataValues.password; return { Usuario: res, token: crearToken(res.idUsuario), }; } throw new Error('La contraseƱa es incorrecta'); }); }; module.exports = login;