@speakr/speakr-module-services
Version:
SPEAKR Shared Service Module
33 lines (28 loc) • 1.24 kB
JavaScript
const _ = require("lodash");
module.exports = {
singleReport
};
function singleReport(options) {
const impressions = options.impressions.dataValues ? options.impressions.dataValues : options.impressions;
const engagements = options.engagements.dataValues ? options.engagements.dataValues : options.engagements;
const report = options.report.dataValues ? options.report.dataValues : options.report;
delete options.report;
const impTotal = _.sumBy(impressions, impression => {
return parseInt(impression.delivered, 0);
})
const engTotal = _.sumBy(engagements, engagement => {
return parseInt(engagement.delivered, 0);
})
const impression_ratios = impressions.map(impression => {
const value = impTotal ? ( (parseInt(impression.delivered, 0)/impTotal) * 100 ).toFixed(2) : 0.00;
return { label: impression.label, value };
})
const engagement_ratios = engagements.map(engagement => {
const value = engTotal ? ( (parseInt(engagement.delivered, 0)/engTotal) * 100 ).toFixed(2) : 0.00;
return { label: engagement.label, value };
})
report.impression_ratios = impression_ratios;
report.engagement_ratios = engagement_ratios;
options.report = report;
return Promise.resolve(options);
}