linea api crear csv de cuestionarios
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
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) => {
|
||||
let year = validar.validarNumero(body.year, 4);
|
||||
|
||||
return Servicio.findAll({
|
||||
include: [
|
||||
{
|
||||
model: CuestionarioAlumno,
|
||||
where: { idCuestionarioAlumno: { [Op.not]: null } },
|
||||
},
|
||||
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}%` } } },
|
||||
{ model: Usuario },
|
||||
],
|
||||
}).then((res) => {
|
||||
let data = [];
|
||||
let csvString = '';
|
||||
let path = `csv/${year}_cuestionarios_alumno.csv`;
|
||||
|
||||
for (let i = 0; i < res.length; i++) {
|
||||
data.push({
|
||||
idServicio: res[i].dataValues.idServicio,
|
||||
clavePrograma: res[i].dataValues.Programa.clavePrograma,
|
||||
usuario: res[i].dataValues.Usuario.usuario,
|
||||
nombre: res[i].dataValues.Usuario.nombre,
|
||||
idCuestionarioAlumno:
|
||||
res[i].dataValues.CuestionarioAlumno.idCuestionarioAlumno,
|
||||
sexo: res[i].dataValues.CuestionarioAlumno.sexo,
|
||||
edad: res[i].dataValues.CuestionarioAlumno.edad,
|
||||
servicioMedico: res[i].dataValues.CuestionarioAlumno.servicioMedico,
|
||||
p1: res[i].dataValues.CuestionarioAlumno.p1,
|
||||
p2: res[i].dataValues.CuestionarioAlumno.p2,
|
||||
p3: res[i].dataValues.CuestionarioAlumno.p3,
|
||||
p4: res[i].dataValues.CuestionarioAlumno.p4,
|
||||
p5: res[i].dataValues.CuestionarioAlumno.p5,
|
||||
p6: res[i].dataValues.CuestionarioAlumno.p6,
|
||||
p7: res[i].dataValues.CuestionarioAlumno.p7,
|
||||
p8: res[i].dataValues.CuestionarioAlumno.p8,
|
||||
p9: res[i].dataValues.CuestionarioAlumno.p9,
|
||||
p10: res[i].dataValues.CuestionarioAlumno.p10,
|
||||
p11: res[i].dataValues.CuestionarioAlumno.p11,
|
||||
p12: res[i].dataValues.CuestionarioAlumno.p12,
|
||||
p13: res[i].dataValues.CuestionarioAlumno.p13,
|
||||
p14: res[i].dataValues.CuestionarioAlumno.p14,
|
||||
p15: res[i].dataValues.CuestionarioAlumno.p15,
|
||||
p16: res[i].dataValues.CuestionarioAlumno.p16,
|
||||
p17: res[i].dataValues.CuestionarioAlumno.p17,
|
||||
p18: res[i].dataValues.CuestionarioAlumno.p18,
|
||||
p19: res[i].dataValues.CuestionarioAlumno.p19,
|
||||
p20: res[i].dataValues.CuestionarioAlumno.p20,
|
||||
p21: res[i].dataValues.CuestionarioAlumno.p21,
|
||||
p22: res[i].dataValues.CuestionarioAlumno.p22,
|
||||
p23: res[i].dataValues.CuestionarioAlumno.p23,
|
||||
p24: res[i].dataValues.CuestionarioAlumno.p24,
|
||||
p25: res[i].dataValues.CuestionarioAlumno.p25,
|
||||
p26: res[i].dataValues.CuestionarioAlumno.p26,
|
||||
p27: res[i].dataValues.CuestionarioAlumno.p27,
|
||||
p28: res[i].dataValues.CuestionarioAlumno.p28,
|
||||
p29: res[i].dataValues.CuestionarioAlumno.p29,
|
||||
p30: res[i].dataValues.CuestionarioAlumno.p30,
|
||||
createdAt: res[i].dataValues.CuestionarioAlumno.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;
|
||||
@@ -0,0 +1,61 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user