40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
const Profesor = require('../../db/tablas/Profesor');
|
|
const ProfesorPremiacion = require('../../db/tablas/ProfesorPremiacion');
|
|
const validar = require('../../helper/validar');
|
|
|
|
const entradaInvitado = async (body) => {
|
|
const idProfesor = validar.validarNumeroEntero(body.idProfesor, 'idProfesor');
|
|
const idPremiacion = validar.validarNumeroEntero(
|
|
body.idPremiacion,
|
|
'idPremiacion'
|
|
);
|
|
|
|
const profesor = await Profesor.findOne({ where: idProfesor });
|
|
if (!profesor) throw new Error('Este profesor no existe.');
|
|
|
|
const profPrem = await ProfesorPremiacion.findOne({
|
|
where: { idPremiacion, idProfesor },
|
|
});
|
|
|
|
if (!profPrem)
|
|
throw new Error(
|
|
'Este profesor no está registrado en esta entrega de medallas.'
|
|
);
|
|
if (!profPrem.numeroInvitados)
|
|
throw new Error('Este profesor no registró a ninún invitado.');
|
|
|
|
let noInvDentro = profPrem.dataValues.numeroInvitadosDentro;
|
|
let noInv = profPrem.dataValues.numeroInvitados;
|
|
if (noInvDentro && noInvDentro >= noInv)
|
|
throw new Error('Este profesor ya ingreso a todos sus invitados.');
|
|
|
|
const res = await profPrem.update({ numeroInvitadosDentro: noInvDentro + 1 });
|
|
if (!res)
|
|
throw new Error(
|
|
'Ha ocurrido un error al registrar los invitados del profesor.'
|
|
);
|
|
return res;
|
|
};
|
|
|
|
module.exports = entradaInvitado;
|