traer cuestionario completo

This commit is contained in:
2022-06-25 18:59:53 -05:00
parent 42aea448a7
commit ce503b7058
3 changed files with 87 additions and 0 deletions
@@ -0,0 +1,45 @@
const Cuestionario = require('../../db/tablas/Cuestionario');
const Seccion = require('../../db/tablas/Seccion');
const Pregunta = require('../../db/tablas/Pregunta');
const Opcion = require('../../db/tablas/Opcion');
const validar = require('../../helper/validar');
const traerCompleto = async (query) => {
const idCuestionario = validar.validarNumeroEntero(
query.idCuestionario,
'idCuestionario'
);
let cuestionario = {};
const cuest = await Cuestionario.findOne({ where: { idCuestionario } });
if (!cuest) throw new Error('No existe el cuestionario');
cuestionario.cuestionario = cuest;
const secciones = await Seccion.findAll({ where: { idCuestionario } });
if (secciones.length === 0) throw new Error('No existen secciones');
cuestionario.secciones = secciones;
for (let i = 0; i < secciones.length; i++) {
cuestionario.secciones[i].preguntas = [];
const preguntas = await Pregunta.findAll({
where: { idSeccion: secciones[i].idSeccion },
});
cuestionario.secciones[i].dataValues.preguntas = preguntas;
for (let j = 0; j < preguntas.length; j++) {
cuestionario.secciones[i].dataValues.preguntas[j].dataValues.opciones =
[];
const opciones = await Opcion.findAll({
where: { idPregunta: preguntas[j].idPregunta },
});
cuestionario.secciones[i].dataValues.preguntas[
j
].dataValues.opciones.push(opciones);
}
}
return cuestionario;
};
module.exports = traerCompleto;