diff --git a/app/controllers/grant.controller.js b/app/controllers/grant.controller.js index 64a3b7e..9f5d11d 100644 --- a/app/controllers/grant.controller.js +++ b/app/controllers/grant.controller.js @@ -108,7 +108,10 @@ exports.findGrantsByDonorId = async (req, res, next) => { g.num_regions, g.donor_id, GROUP_CONCAT(DISTINCT o.id SEPARATOR ',') AS organization_ids, - GROUP_CONCAT(DISTINCT o.name SEPARATOR ',') AS organization_names + GROUP_CONCAT(DISTINCT o.name SEPARATOR ',') AS organization_names, + GROUP_CONCAT(DISTINCT o.primary_cause SEPARATOR ',') AS causes, + GROUP_CONCAT(DISTINCT o.primary_region SEPARATOR ',') AS regions, + GROUP_CONCAT(go.amount SEPARATOR ',') AS amounts from grants as g inner join GrantOrganizations as go on go.grant_id = g.id left join organizations as o on o.id = go.organization_id @@ -118,18 +121,29 @@ exports.findGrantsByDonorId = async (req, res, next) => { { type: db.sequelize.QueryTypes.SELECT, replacements: { donor_id } } ); + // adding in the organizations, causes, and regions for each grant into arrays grants.map(grant => { - grant.organizations = []; + let org_ids = grant.organization_ids.toString().split(","); + let org_names = grant.organization_names.toString().split(","); + let causes = grant.causes.toString().split(","); + let regions = grant.regions.toString().split(","); + let amounts = grant.amounts.toString().split(","); - org_ids = grant.organization_ids.toString().split(","); - org_names = grant.organization_names.toString().split(","); + grant.organizations = []; + grant.causes = []; + grant.regions = []; for (var i = 0; i < org_names.length; i++) { grant.organizations.push({ id: org_ids[i], - name: org_names[i] + name: org_names[i], + amount: parseInt(amounts[i]) }); + causes[i] ? grant.causes.push({ name: causes[i] }) : null; + regions[i] ? grant.regions.push({ name: regions[i] }) : null; } + + grant.monthly = grant.monthly == 1 ? true : false; }); return res.status(200).json({