Files
servicio_social_api/server/controller/CuestionarioPrograma/get.js
T
Lemuel Marquez fc77a4d755 listo
2021-01-12 21:09:37 -06:00

59 lines
2.0 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);
let path = `csv/${year}_cuestionario_programa.csv`;
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 = '';
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) throw new Error(err);
});
return {
message: `Se creo/actualizo correctamente el csv del cuestionario de programa del año ${year}`,
};
});
};
module.exports = get;