From ff123d4ad6f857d08fafeb643994a6458ed94c66 Mon Sep 17 00:00:00 2001 From: lemuel Date: Thu, 2 Sep 2021 08:21:35 -0500 Subject: [PATCH] multa e infraccines --- server/controller/Infraccion/get.js | 5 ++++ server/controller/Multa/multar.js | 46 +++++++++++++++++++++++++++++ server/routes/Infraccion.js | 30 +++++++++---------- server/routes/Multa.js | 30 +++++++++---------- server/routes/index.js | 4 +-- 5 files changed, 83 insertions(+), 32 deletions(-) create mode 100644 server/controller/Infraccion/get.js create mode 100644 server/controller/Multa/multar.js diff --git a/server/controller/Infraccion/get.js b/server/controller/Infraccion/get.js new file mode 100644 index 0000000..171f4f9 --- /dev/null +++ b/server/controller/Infraccion/get.js @@ -0,0 +1,5 @@ +const Infraccion = require('../../db/tablas/Infraccion'); + +const get = async () => Infraccion.findAll(); + +module.exports = get; diff --git a/server/controller/Multa/multar.js b/server/controller/Multa/multar.js new file mode 100644 index 0000000..e43a6ae --- /dev/null +++ b/server/controller/Multa/multar.js @@ -0,0 +1,46 @@ +const moment = require('moment'); +const Infraccion = require('../../db/tablas/Infraccion'); +const { validarId, validarTexto } = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +const Prestamo = require(`${dbPath}/Prestamo`); +const Usuario = require(`${dbPath}/Usuario`); +const Multa = require(`${dbPath}/Multa`); + +const multar = async (body) => { + const idInfraccion = validarId(body.idInfraccion); + const idPrestamo = validarId(body.idPrestamo); + const descripcion = validarTexto(body.descripcion, 'La descripción', 500); + let infraccion = {}; + let fechaFin = moment(); + + return Infraccion.findOne({ where: { idInfraccion } }) + .then((res) => { + if (!res) throw new Error('No existe esta infracción.'); + infraccion = res; + return Prestamo.findOne({ + where: { idPrestamo }, + include: [{ model: Usuario }], + }); + }) + .then((res) => { + if (!res) throw new Error('No existe este prestamo.'); + console.log(res.dataValues); + return Usuario.update( + { multa: true }, + { where: { idUsuario: res.Usuario.idUsuario } } + ); + }) + .then((res) => { + if (infraccion.gravedad === '1') fechaFin.add(7, 'd'); + else fechaFin.add(100, 'y'); + return Multa.create({ + descripcion, + idInfraccion, + idPrestamo, + fechaFin: fechaFin.format(), + }); + }) + .then((res) => ({ message: `Se multo correctamente al alumno.` })); +}; + +module.exports = multar; diff --git a/server/routes/Infraccion.js b/server/routes/Infraccion.js index 59e36ea..c1bc3b6 100644 --- a/server/routes/Infraccion.js +++ b/server/routes/Infraccion.js @@ -1,21 +1,21 @@ const express = require('express'); const app = express(); const { verificaToken } = require('../middleware/autentificacion'); -const route = '/status'; -// const get = require('../controller/Status/get'); +const route = '/infraccion'; +const get = require('../controller/Infraccion/get'); -// app.get( -// `${route}`, -// //verificaToken, -// (req, res) => { -// return get() -// .then((data) => { -// res.status(200).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// } -// ); +app.get( + `${route}`, + //verificaToken, + (req, res) => { + return get() + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); + } +); module.exports = app; diff --git a/server/routes/Multa.js b/server/routes/Multa.js index 59e36ea..2ea6133 100644 --- a/server/routes/Multa.js +++ b/server/routes/Multa.js @@ -1,21 +1,21 @@ const express = require('express'); const app = express(); const { verificaToken } = require('../middleware/autentificacion'); -const route = '/status'; -// const get = require('../controller/Status/get'); +const route = '/multa'; +const multar = require('../controller/Multa/multar'); -// app.get( -// `${route}`, -// //verificaToken, -// (req, res) => { -// return get() -// .then((data) => { -// res.status(200).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// } -// ); +app.post( + `${route}`, + //verificaToken, + (req, res) => { + return multar(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); + } +); module.exports = app; diff --git a/server/routes/index.js b/server/routes/index.js index 638d1e6..8c3aac3 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -3,9 +3,9 @@ const app = express(); app.use(require('./Carrito')); app.use(require('./Equipo')); -// app.use(require('./Infraccion')); +app.use(require('./Infraccion')); app.use(require('./Modulo')); -// app.use(require('./Multa')); +app.use(require('./Multa')); app.use(require('./Operador')); app.use(require('./Prestamo')); app.use(require('./Programa'));