listo, faltan correo y pruebas
This commit is contained in:
@@ -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;
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user