Files
cuestionarios_api/server/controller/Cuestionario/traerCompleto.js
T
2022-06-25 18:59:53 -05:00

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;