46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
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;
|