traer cuestionario completo
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user