From 0a9ae79747bc99bb1483cceeabae2270a03988f2 Mon Sep 17 00:00:00 2001 From: Andres2908 Date: Tue, 22 Feb 2022 16:31:40 -0600 Subject: [PATCH] token y cambios al reporte --- server/controller/Admin/login.js | 24 ++++++++++++++++-------- server/controller/Admin/reporte.js | 13 ++++++++----- server/controller/Admin/validarTicket.js | 4 +++- server/controller/Usuario/escolares.js | 1 - server/controller/Usuario/login.js | 8 +++++++- server/middleware/autentificacion.js | 4 ++-- server/routes/Admin.js | 9 +++++---- server/routes/Usuario.js | 24 ++++++++++++++---------- server/uploads/reporte.csv | 6 +++--- 9 files changed, 58 insertions(+), 35 deletions(-) diff --git a/server/controller/Admin/login.js b/server/controller/Admin/login.js index 0c17b39..826b19d 100644 --- a/server/controller/Admin/login.js +++ b/server/controller/Admin/login.js @@ -1,4 +1,5 @@ const validar = require('../../helper/validar'); +const { crearToken } = require('../../middleware/autentificacion'); const Admin = require('../../db/tablas/Admin'); const { comparar } = require('../../helper/encriptar'); @@ -12,14 +13,21 @@ const login = async (body) => { 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'], - }); - }); + }) + .then((res) => { + if (!comparar(password, res.password)) + throw new Error('La contraseña es incorrecta.'); + return Admin.findOne({ + where: { usuario: body.usuario }, + attributes: ['usuario'], + }); + }) + .then((res) => ({ + Usuario: res, + token: crearToken({ + idUsuario: numeroCuenta, + }), + })); }; module.exports = login; diff --git a/server/controller/Admin/reporte.js b/server/controller/Admin/reporte.js index 7094f1e..488aa77 100644 --- a/server/controller/Admin/reporte.js +++ b/server/controller/Admin/reporte.js @@ -29,13 +29,15 @@ const reporte = async (body) => { ], }) .then(async (res) => { - if (body.tipo) { + if (body.tipo === 'CSV') { for (let i = 0; i < res.length; i++) { data.push({ - numeroCuenta: res[i].Usuario.numeroCuenta, - idArea: res[i].idArea, - hizoPago: res[i].hizoPago, - fechaInscripcion: moment(res[i].fechaInscripcion).format('L'), + numero_cuenta: res[i].Usuario.numeroCuenta, + id_area: res[i].idArea, + folio: res[i].folio, + monto: res[i].monto, + hizo_pago: res[i].hizoPago, + fecha_inscripcion: moment(res[i].fechaInscripcion).format('L'), }); } } else { @@ -46,6 +48,7 @@ const reporte = async (body) => { confirmacion: res[i].confirmacion, folio: res[i].folio, monto: res[i].monto, + hizoPago: res[i].hizoPago, fechaInscripcion: moment(res[i].fechaInscripcion).format('L'), idArea: res[i].idArea, }); diff --git a/server/controller/Admin/validarTicket.js b/server/controller/Admin/validarTicket.js index 3ded65d..8df244a 100644 --- a/server/controller/Admin/validarTicket.js +++ b/server/controller/Admin/validarTicket.js @@ -22,7 +22,9 @@ const validarTicket = async (body) => { .then((res) => { console.log(body.validacion); if (body.validacion === 0) - throw new Error('El administrador a declinado el ticket'); + throw new Error( + 'El administrador a declinado el ticket, ya que los datos no coinciden.' + ); }) .then((res) => ({ message: '¡ El ticket a sido validado de forma correcta !', diff --git a/server/controller/Usuario/escolares.js b/server/controller/Usuario/escolares.js index bcef813..b1588d1 100644 --- a/server/controller/Usuario/escolares.js +++ b/server/controller/Usuario/escolares.js @@ -27,7 +27,6 @@ const escolares = async (body) => { } return Usuario.findOne({ where: { numeroCuenta: body.numeroCuenta }, - // include: [{ model: Carrera }], attributes: [ 'idUsuario', 'numeroCuenta', diff --git a/server/controller/Usuario/login.js b/server/controller/Usuario/login.js index 9ccd880..7e1ed2b 100644 --- a/server/controller/Usuario/login.js +++ b/server/controller/Usuario/login.js @@ -1,8 +1,8 @@ const validar = require('../../helper/validar'); const escolares = require('./escolares'); const axios = require('axios'); +const { crearToken } = require('../../middleware/autentificacion'); const Usuario = require('../../db/tablas/Usuario'); -const { comparar } = require('../../helper/encriptar'); const login = async (body) => { const numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta); @@ -24,6 +24,12 @@ const login = async (body) => { const datos = escolares(info.data); return datos; }) + .then((res) => ({ + Usuario: res, + token: crearToken({ + idUsuario: numeroCuenta, + }), + })) .catch((err) => { throw new Error('Usuario o contraseña incorrecta.'); }); diff --git a/server/middleware/autentificacion.js b/server/middleware/autentificacion.js index 8497762..1c6f752 100644 --- a/server/middleware/autentificacion.js +++ b/server/middleware/autentificacion.js @@ -31,7 +31,7 @@ const crearToken = (data) => { }); }; -const crearTokenUsuario = (data) => { +const crearTokenAdmin = (data) => { return jwt.sign({ data }, process.env.KEY, { expiresIn: Number(process.env.CADUCIDAD_TOKEN_USUARIO), }); @@ -43,4 +43,4 @@ const crearTokenOperador = (data) => { }); }; -module.exports = { verificaToken, crearToken }; +module.exports = { verificaToken, crearToken, crearTokenAdmin }; diff --git a/server/routes/Admin.js b/server/routes/Admin.js index 0958d4f..592722a 100644 --- a/server/routes/Admin.js +++ b/server/routes/Admin.js @@ -2,6 +2,7 @@ const express = require('express'); const app = express(); const fs = require('fs'); const { validarAlfanumerico } = require('../helper/validar'); +const { verificaToken } = require('../middleware/autentificacion'); const route = '/Admin'; const controllerPath = '../controller/Admin'; const todasInscripciones = require(`${controllerPath}/todasInscripciones`); @@ -20,7 +21,7 @@ app.post(`${route}/login`, (req, res) => { }); }); -app.get(`${route}/todas_inscripciones`, (req, res) => { +app.get(`${route}/todas_inscripciones`, verificaToken, (req, res) => { return todasInscripciones(req.query) .then((data) => { res.status(200).json(data); @@ -30,7 +31,7 @@ app.get(`${route}/todas_inscripciones`, (req, res) => { }); }); -app.get(`${route}/ticket`, (req, res) => { +app.get(`${route}/ticket`, verificaToken, (req, res) => { return ticket(req.query) .then((data) => { res.writeHead(200, { 'content-type': `image/png` }); @@ -44,7 +45,7 @@ app.get(`${route}/ticket`, (req, res) => { }); }); -app.put(`${route}/validar`, (req, res) => { +app.put(`${route}/validar`, verificaToken, (req, res) => { return validarTicket(req.body) .then((data) => { res.status(200).json(data); @@ -54,7 +55,7 @@ app.put(`${route}/validar`, (req, res) => { }); }); -app.get(`${route}/reporte`, (req, res) => { +app.get(`${route}/reporte`, verificaToken, (req, res) => { return reporte(req.query) .then((data) => { res.download(data); diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js index 0602525..260afdc 100644 --- a/server/routes/Usuario.js +++ b/server/routes/Usuario.js @@ -7,7 +7,6 @@ const { verificaToken } = require('../middleware/autentificacion'); const route = '/Usuario'; const controllerPath = '../controller/Usuario'; const login = require(`${controllerPath}/login`); -// const escolares = require(`${controllerPath}/escolares`); const inscripciones = require(`${controllerPath}/inscripciones`); const inscripcionUsuario = require(`${controllerPath}/inscripcionUsuario`); @@ -31,14 +30,19 @@ app.get(`${route}/inscripciones`, (req, res) => { }); }); -app.post(`${route}/inscripcionUsuario`, upload.single('imagen'), (req, res) => { - return inscripcionUsuario(req.body, req.file) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); +app.post( + `${route}/inscripcionUsuario`, + verificaToken, + upload.single('imagen'), + (req, res) => { + return inscripcionUsuario(req.body, req.file) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); + } +); module.exports = app; diff --git a/server/uploads/reporte.csv b/server/uploads/reporte.csv index dc65fc0..69f07fc 100644 --- a/server/uploads/reporte.csv +++ b/server/uploads/reporte.csv @@ -1,3 +1,3 @@ -numeroCuenta,idArea,hizoPago,fechaInscripcion -419085500,3,true,02/17/2022 -419085500,1,false,02/17/2022 +numeroCuenta,validacion,confirmacion,folio,monto,hizoPago,fechaInscripcion,idArea +419085500,2,false,7852,63,true,02/17/2022,3 +419085500,2,false,"","",false,02/17/2022,1