const fs = require('fs'); const { convertArrayToCSV } = require('convert-array-to-csv'); const { Op } = require('sequelize'); const helperPath = '../../helper'; const helper = require(`${helperPath}/helper`); const { validarNumero } = require(`${helperPath}/validar`); const dbPath = '../../db/tablas'; const CuestionarioPrograma = require(`${dbPath}/CuestionarioPrograma`); const Servicio = require(`${dbPath}/Servicio`); const Programa = require(`${dbPath}/Programa`); const Usuario = require(`${dbPath}/Usuario`); const get = async (body) => { const year = validarNumero(body.year, 4); const path = `server/uploads/${year}_cuestionario_programa.csv`; const data = []; return Servicio.findAll({ include: [ { model: CuestionarioPrograma, where: { idCuestionarioPrograma: { [Op.not]: null } }, }, { model: Programa, where: { clavePrograma: { [Op.like]: `${year}-%` } } }, { model: Usuario }, ], 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, }); await helper.eliminarArchivo(path).catch((err) => { console.log(err); }); return helper.crearArchivo(path, convertArrayToCSV(data)); }) .then((res) => { return path; }); }; module.exports = get;