Files
servicio_social_api/server/controller/CuestionarioAlumno/get.js
T
2021-02-04 18:14:51 -06:00

82 lines
3.0 KiB
JavaScript

const fs = require('fs');
const { convertArrayToCSV } = require('convert-array-to-csv');
const { Op } = require('sequelize');
const validar = require('../../helper/validar');
const CuestionarioAlumno = require('../../db/tablas/CuestionarioAlumno');
const Servicio = require('../../db/tablas/Servicio');
const Programa = require('../../db/tablas/Programa');
const Usuario = require('../../db/tablas/Usuario');
const get = async (body) => {
const year = validar.validarNumero(body.year, 4);
const path = `csv/${year}_cuestionario_alumno.csv`;
const data = [];
return Servicio.findAll({
include: [
{
model: CuestionarioAlumno,
where: { idCuestionarioAlumno: { [Op.not]: null } },
},
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}%` } } },
{ model: Usuario },
],
}).then((res) => {
for (let i = 0; i < res.length; i++)
data.push({
idServicio: res[i].idServicio,
clavePrograma: res[i].Programa.clavePrograma,
usuario: res[i].Usuario.usuario,
nombre: res[i].Usuario.nombre,
idCuestionarioAlumno: res[i].CuestionarioAlumno.idCuestionarioAlumno,
sexo: res[i].CuestionarioAlumno.sexo,
edad: res[i].CuestionarioAlumno.edad,
servicioMedico: res[i].CuestionarioAlumno.servicioMedico,
p1: res[i].CuestionarioAlumno.p1,
p2: res[i].CuestionarioAlumno.p2,
p3: res[i].CuestionarioAlumno.p3,
p4: res[i].CuestionarioAlumno.p4,
p5: res[i].CuestionarioAlumno.p5,
p6: res[i].CuestionarioAlumno.p6,
p7: res[i].CuestionarioAlumno.p7,
p8: res[i].CuestionarioAlumno.p8,
p9: res[i].CuestionarioAlumno.p9,
p10: res[i].CuestionarioAlumno.p10,
p11: res[i].CuestionarioAlumno.p11,
p12: res[i].CuestionarioAlumno.p12,
p13: res[i].CuestionarioAlumno.p13,
p14: res[i].CuestionarioAlumno.p14,
p15: res[i].CuestionarioAlumno.p15,
p16: res[i].CuestionarioAlumno.p16,
p17: res[i].CuestionarioAlumno.p17,
p18: res[i].CuestionarioAlumno.p18,
p19: res[i].CuestionarioAlumno.p19,
p20: res[i].CuestionarioAlumno.p20,
p21: res[i].CuestionarioAlumno.p21,
p22: res[i].CuestionarioAlumno.p22,
p23: res[i].CuestionarioAlumno.p23,
p24: res[i].CuestionarioAlumno.p24,
p25: res[i].CuestionarioAlumno.p25,
p26: res[i].CuestionarioAlumno.p26,
p27: res[i].CuestionarioAlumno.p27,
p28: res[i].CuestionarioAlumno.p28,
p29: res[i].CuestionarioAlumno.p29,
p30: res[i].CuestionarioAlumno.p30,
createdAt: res[i].CuestionarioAlumno.createdAt,
});
try {
fs.unlinkSync(path);
} catch (err) {
throw new Error(err);
}
fs.appendFile(path, convertArrayToCSV(data), (err) => {
if (err) throw new Error(err);
});
return {
message: `Se creo/actualizo correctamente el csv del cuestionario de alumno del año ${year}.`,
};
});
};
module.exports = get;