Bom dia,
Pessoal, tenho a seguinte função:
return new Promise((resolve, reject) => {
Ftbjanbp.find(ctx.args.filter, (err, results) => {
if (err) return reject(err);
let valueVisualize = filters.selectVisualize == 1 ? '__data.FTBJANCIACODCIA' : '__data.FTBJANCIACODCIA_DOA';
let resulted = results.map((e) => {
return { ...e, data: moment(e.FTBJANDATULTAG).format('DD/MM/YYYY') };
})
if (filters.selectVisualize != 3) {
let res = _.chain(resulted).groupBy("data").map((value, key) => ({
date: key,
visualization: _.chain(value).groupBy(valueVisualize).map((value, key) => ({
valueVisualize: key.trim(),
dataRegister: value[0].data,
intervals: _.chain(value).groupBy("__data.FTBJANELA").map((value, key) => ({
name: key.trim(),
types: _.chain(value).groupBy("__data.FTBJANTIPPORT").map((value, key) => ({
name: key == '0' ? 'Inter-Prestadora' : key == '1' ? 'Intrisica' : 'Desconexão',
total: value[0].__data.FTBJANQTDEBP,
})),
})),
}))
}))
return resolve(res);
} else {
let res = _.chain(resulted).groupBy("data").map((value, key) => ({
date: key,
visualization: _.chain(value).groupBy('__data.FTBJANELA').map((value, key) => ({
valueVisualize: key.trim(),
types: _.chain(value).groupBy("__data.FTBJANTIPPORT").map((value, key) => ({
name: key == '0' ? 'Inter-Prestadora' : key == '1' ? 'Intrisica' : 'Desconexão',
total: value.map((e) => ({
total: e.__data
}))
})),
}))
}))
return resolve(res);
}
});
});
Gostaria de saber se é possível eu separar a logica do ‘group’ em uma outra função a parte, para que não fique tudo no retorno da promisse e o código fique mais organizado