Files
servicio_social_api/server/controller/CuestionarioPrograma/get.js
T

59 lines
2.1 KiB
JavaScript
Raw Normal View History

2021-01-11 04:54:21 -06:00
const fs = require('fs');
const { convertArrayToCSV } = require('convert-array-to-csv');
const { Op } = require('sequelize');
2021-05-13 14:06:07 -05:00
const helperPath = '../../helper';
const helper = require(`${helperPath}/helper`);
const { validarNumero } = require(`${helperPath}/validar`);
2021-05-05 18:49:23 -05:00
const dbPath = '../../db/tablas';
const CuestionarioPrograma = require(`${dbPath}/CuestionarioPrograma`);
const Servicio = require(`${dbPath}/Servicio`);
const Programa = require(`${dbPath}/Programa`);
const Usuario = require(`${dbPath}/Usuario`);
2021-01-11 04:54:21 -06:00
const get = async (body) => {
2021-05-13 14:06:07 -05:00
const year = validarNumero(body.year, 4);
2021-05-12 19:08:28 -05:00
const path = `server/uploads/${year}_cuestionario_programa.csv`;
2021-01-14 03:13:37 -06:00
const data = [];
2021-01-11 04:54:21 -06:00
return Servicio.findAll({
include: [
{
model: CuestionarioPrograma,
where: { idCuestionarioPrograma: { [Op.not]: null } },
},
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}-%` } } },
{ model: Usuario },
],
2021-05-12 19:08:28 -05:00
order: [['createdAt']],
})
.then(async (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,
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,
});
2021-05-13 14:06:07 -05:00
await helper.eliminarArchivo(path).catch((err) => {
2021-05-12 19:08:28 -05:00
console.log(err);
2021-01-11 04:54:21 -06:00
});
2021-05-13 14:06:07 -05:00
return helper.crearArchivo(path, convertArrayToCSV(data));
2021-05-12 19:08:28 -05:00
})
.then((res) => {
return path;
2021-01-11 04:54:21 -06:00
});
};
module.exports = get;