diff --git a/server/controller/Multa/multarUsuario.js b/server/controller/Multa/multarUsuario.js new file mode 100644 index 0000000..4035771 --- /dev/null +++ b/server/controller/Multa/multarUsuario.js @@ -0,0 +1,27 @@ +const validar = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +const Multa = require(`${dbPath}/Multa`); +const Usuario = require(`${dbPath}/Usuario`); + +const multar = async (body) => { + const idUsuario = validar.validarNumeroEntero( + body.idUsuario, + 'id usuario', + true + ); + + return Usuario.findOne({ where: { idUsuario } }) + .then((res) => { + if (!res) throw new Error('No existe este usuario.'); + return Multa.findAll({ where: { idUsuario, activo: true } }); + }) + .then((res) => { + if (res.length > 2) + throw new Error( + 'El usuario tiene más de 2 multas activas, favor de notificar a un operador sobre este problema.' + ); + return res; + }); +}; + +module.exports = multar; diff --git a/server/db/tablas/Multa.js b/server/db/tablas/Multa.js index 2d0ad74..b62565d 100644 --- a/server/db/tablas/Multa.js +++ b/server/db/tablas/Multa.js @@ -22,6 +22,11 @@ Multa.init( type: DataTypes.DATE, allowNull: false, }, + activo: { + type: DataTypes.BOOLEAN, + allowNull: false, + defaultValue: true, + }, }, { sequelize,