listo, faltan correo y pruebas

This commit is contained in:
2022-04-17 22:23:39 -05:00
parent de238e3e50
commit a69574d529
23 changed files with 695 additions and 62 deletions
@@ -0,0 +1,62 @@
const Invitado = require('../../db/tablas/Invitado');
const Profesor = require('../../db/tablas/Profesor');
const validar = require('../../helper/validar');
const { correo } = require('../../helper/correos');
const gmail = require('../../helper/gmail')
const infoInvitados = async (body) => {
const idProfesor = validar.validarNumeroEntero(body.idProfesor, 'idProfesor');
const invitados = body.invitados;
const numeroInvitados = invitados.length;
if (!numeroInvitados === 0 || numeroInvitados > 3)
throw new Error('El número de invitados no puede ser cero ni mayor que 3.');
const prof = await Profesor.findOne({ where: idProfesor });
if(prof.numeroInvitados) throw new Error('A este profesor ya se le han guardado sus invitados.')
prof.update({ numeroInvitados: numeroInvitados });
const respuesta = [];
for (let i = 0; i < numeroInvitados; i++) {
const invitado = invitados[i];
const nombre = validar.validacionBasicaStr(
invitado.nombreCompleto,
`nombre completo invitado ${i+1}`,
true
);
const edad = validar.validarNumeroEntero(
invitado.edad,
`edad invitado ${i+1}`,
false
);
const res = await Invitado.create({
nombreCompleto: nombre,
edad: edad,
idProfesor: idProfesor,
});
if (!res)
throw new Error('No se ha podido ingresar los datos del invitado');
respuesta.push(res);
}
const dataProf = await Profesor.findOne({where: idProfesor})
const Mail = correo(
dataProf.nombre,
dataProf.numeroTrabajador,
dataProf.numeroInvitados,
);
gmail(
Mail.subject,
`yosoymarco3@gmail.com`,
// `${dataProf.numeroTrabajador}@pcpuma.acatlan.unam.mx`,
Mail.message
);
return {
message:
'Se registró correctamente sus invitados. Se enviaron los pases de entrada a su correo institucional pcpuma.',
};
};
module.exports = infoInvitados;
+29
View File
@@ -0,0 +1,29 @@
const csv = require('csvtojson');
const { eliminarArchivo } = require('../../helper/helper');
const Profesor = require('../../db/tablas/Profesor');
const cargaMasiva = async (file) => {
const path = `server/uploads/${file}`;
let res = [];
await csv()
.fromFile(path)
.then(async (profesores) => {
for (let i = 0; i < profesores.length; i++) {
const resp = await Profesor.create({
numeroTrabajador: profesores[i].numeroTrabajador,
nombre: profesores[i].nombre,
correo: `${profesores[i].numeroTrabajador}@pcpuma.acatlan.unam.mx`,
adscripcion: profesores[i].adscripcion,
})
res.push(resp)
}
await eliminarArchivo(path);
});
return {
message: 'Se subió correctamente el archivo csv.',
res
};
};
module.exports = cargaMasiva;
@@ -0,0 +1,22 @@
const Profesor = require('../../db/tablas/Profesor');
const validar = require('../../helper/validar');
const entradaInvitado = async (body) => {
const idProfesor = validar.validarNumeroEntero(body.idProfesor, 'idProfesor');
const profesor = await Profesor.findOne({ where: idProfesor });
if (!profesor) throw new Error('Este profesor no existe');
let noInvDentro = profesor.dataValues.numeroInvitadosDentro;
let noInv = profesor.dataValues.numeroInvitados;
if (noInvDentro && noInvDentro >= noInv)
throw new Error('Este profesor ya ingreso a todos sus invitados.');
const res = await profesor.update({ numeroInvitadosDentro: noInvDentro + 1 });
if (!res)
throw new Error(
'Ha ocurrido un error al actualizar los datos del profesor.'
);
return res;
};
module.exports = entradaInvitado;
@@ -1,5 +0,0 @@
// const Invitado = require('../../db/tablas/Invitado');
// const get = () => Invitado.findAll();
// module.exports = get;