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;
@@ -0,0 +1,31 @@
const RespuestaAbiertaEd = require('../../db/tablas/RespuestaAbiertaEd');
const RespuestaAbiertaTrabajador = require('../../db/tablas/RespuestaAbiertaTrabajador');
const RespuestaAbiertaAlumno = require('../../db/tablas/RespuestaAbiertaAlumno');
const RespuestaEd = require('../../db/tablas/RespuestaEd');
const RespuestaTrabajador = require('../../db/tablas/RespuestaTrabajador');
const RespuestaAlumno = require('../../db/tablas/RespuestaAlumno');
const Pregunta = require('../../db/tablas/Pregunta');
const TipoPregunta = require('../../db/tablas/TipoPregunta');
const validar = require('../../helper/validar');
const traerPoridPregunta = async (query) => {
const idPregunta = validar.validarNumeroEntero(
query.idPregunta,
'idPregunta'
);
const existePregunta = Pregunta.findOne({where: idPregunta, include: [{ model: TipoPregunta }]})
if(!existePregunta) throw new Error("No existe una pregunta con est idPregunta en la db.")
if(existePregunta.idTipoPregunta !== 1 ) {
}
return Respuesta.findAll({
where: { idPregunta }
}).then(res => {
if(!res) throw new Error("No hay ninguna Respuesta con este idPregunta.")
return res;
});
};
module.exports = traerPoridPregunta;
+11
View File
@@ -4,6 +4,7 @@ const app = express();
const route = '/Cuestionario';
const traerTodos = require('../controller/Cuestionario/traerTodos');
const traerPorId = require('../controller/Cuestionario/traerPorId');
const TraerCompleto = require('../controller/Cuestionario/TraerCompleto');
const crear = require('../controller/Cuestionario/crear');
const editar = require('../controller/Cuestionario/editar');
@@ -27,6 +28,16 @@ app.get(`${route}/TraerPorId`, (req, res) => {
});
});
app.get(`${route}/TraerCompleto`, (req, res) => {
return TraerCompleto(req.query)
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
});
app.post(`${route}/crear`, (req, res) => {
return crear(req.body)
.then((data) => {