diff --git a/server/controller/Admin/login.js b/server/controller/Admin/login.js new file mode 100644 index 0000000..0c17b39 --- /dev/null +++ b/server/controller/Admin/login.js @@ -0,0 +1,25 @@ +const validar = require('../../helper/validar'); +const Admin = require('../../db/tablas/Admin'); +const { comparar } = require('../../helper/encriptar'); + +const login = async (body) => { + const password = validar.validarAlfanumerico( + body.password, + 'contraseƱa', + false, + 20 + ); + + return Admin.findOne({ + where: { usuario: body.usuario }, + }).then((res) => { + if (!comparar(password, res.password)) + throw new Error('La contraseƱa es incorrecta.'); + return Admin.findOne({ + where: { usuario: body.usuario }, + attributes: ['usuario'], + }); + }); +}; + +module.exports = login; diff --git a/server/controller/Usuario/login.js b/server/controller/Usuario/login.js index 998b072..9ccd880 100644 --- a/server/controller/Usuario/login.js +++ b/server/controller/Usuario/login.js @@ -1,6 +1,8 @@ const validar = require('../../helper/validar'); const escolares = require('./escolares'); const axios = require('axios'); +const Usuario = require('../../db/tablas/Usuario'); +const { comparar } = require('../../helper/encriptar'); const login = async (body) => { const numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta); @@ -18,8 +20,6 @@ const login = async (body) => { ) .then((res) => { const info = res.data; - console.log('res.data'); - // console.log(res.data); info.data.numeroCuenta = numeroCuenta; const datos = escolares(info.data); return datos; diff --git a/server/db/install.js b/server/db/install.js index 39e2d1c..21b7de9 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -1,6 +1,6 @@ require('../config/config'); const colors = require('colors'); -// const encriptar = require('../helper/encriptar'); +const encriptar = require('../helper/encriptar'); const Carrera = require('./tablas/Carrera'); const Usuario = require('./tablas/Usuario'); const Area = require('./tablas/Area'); @@ -59,10 +59,20 @@ const dataArea = async () => { for (let i = 0; i < data.length; i++) await Area.create({ area: data[i] }); }; +const dataAdmin = async () => { + console.log('\nPaso 4) Insertando admin.'.bold.blue); + await Admin.create({ + idTipoUsuario: 1, + usuario: 'Araceli', + password: encriptar.encriptar(process.env.ADMIN_PASSWORD), + }); +}; + const exe = async () => { await drop(); await sync(); await dataArea(); + await dataAdmin(); console.log( '\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green ); diff --git a/server/routes/Admin.js b/server/routes/Admin.js index c652552..ab5d467 100644 --- a/server/routes/Admin.js +++ b/server/routes/Admin.js @@ -8,6 +8,17 @@ const todasInscripciones = require(`${controllerPath}/todasInscripciones`); const ticket = require(`${controllerPath}/ticket`); const validarTicket = require(`${controllerPath}/validarTicket`); const reporte = require(`${controllerPath}/reporte`); +const login = require(`${controllerPath}/login`); + +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}/todas_inscripciones`, (req, res) => { return todasInscripciones(req.query)