const { crearTokenOperador } = require('../../middleware/autentificacion'); const helperPath = '../../helper'; const { comparar } = require(`${helperPath}/encriptar`); const validar = require(`${helperPath}/validar`); const dbPath = '../../db/tablas'; const Operador = require(`${dbPath}/Operador`); const TipoUsuario = require(`${dbPath}/TipoUsuario`); const login = async (body) => { const operador = validar.validarTexto(body.operador, 'El operador', 60); const password = validar.validarAlfanumerico( body.password, 'La contraseƱa', 20 ); return Operador.findOne({ where: { operador }, include: [{ model: TipoUsuario }], }).then((res) => { if (!res) throw new Error('No existe este operador.'); if (!res.activo) throw new Error('Este operador no esta activo.'); if (comparar(password, res.password)) { delete res.dataValues.password; return { Operador: res, token: crearTokenOperador({ idOperador: res.idOperador, idTipoUsuario: res.TipoUsuario.idTipoUsuario, }), }; } throw new Error('La contraseƱa es incorrecta.'); }); }; module.exports = login;