Files
servicio_social_api/server/controller/CuestionarioPrograma/get.js
T
2021-01-11 04:54:21 -06:00

62 lines
2.1 KiB
JavaScript

const fs = require('fs');
const { convertArrayToCSV } = require('convert-array-to-csv');
const { Op } = require('sequelize');
const validar = require('../../helper/validar');
const CuestionarioPrograma = require('../../db/tablas/CuestionarioPrograma');
const Servicio = require('../../db/tablas/Servicio');
const Programa = require('../../db/tablas/Programa');
const Usuario = require('../../db/tablas/Usuario');
const get = async (body) => {
let year = validar.validarNumero(body.year, 4);
return Servicio.findAll({
include: [
{
model: CuestionarioPrograma,
where: { idCuestionarioPrograma: { [Op.not]: null } },
},
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}-%` } } },
{ model: Usuario },
],
}).then((res) => {
let data = [];
let csvString = '';
let path = `csv/${year}_cuestionarios_programa.csv`;
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,
idCuestionarioPrograma:
res[i].CuestionarioPrograma.idCuestionarioPrograma,
actividad1: res[i].CuestionarioPrograma.actividad1,
actividad2: res[i].CuestionarioPrograma.actividad2,
actividad3: res[i].CuestionarioPrograma.actividad3,
actividad4: res[i].CuestionarioPrograma.actividad4,
actividad5: res[i].CuestionarioPrograma.actividad5,
retroalimentacion: res[i].CuestionarioPrograma.retroalimentacion,
p6: res[i].CuestionarioPrograma.p6,
p7: res[i].CuestionarioPrograma.p7,
createdAt: res[i].CuestionarioPrograma.createdAt,
});
try {
fs.unlinkSync(path);
} catch (err) {}
csvString = convertArrayToCSV(data);
fs.appendFile(path, csvString, (err) => {
if (err) {
console.log(err);
throw new Error('hubo un problema al crear el archivo csv.');
}
});
return {
message: `Se creo/actualizo correctamente el csv del cuestionario de programa del año ${year}`,
};
});
};
module.exports = get;