From 1b9608f225c9321b89f2896d57959fe941bb3525 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Sun, 26 Jul 2015 19:12:56 -0700 Subject: [PATCH] fix nonprofits totalSavings errors --- server/boot/nonprofits.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/server/boot/nonprofits.js b/server/boot/nonprofits.js index 23bf2d979e..1155c49fa6 100644 --- a/server/boot/nonprofits.js +++ b/server/boot/nonprofits.js @@ -1,3 +1,4 @@ +var Rx = require('rx'); var debug = require('debug')('freecc:nonprofits'); var observeMethod = require('../utils/rx').observeMethod; var unDasherize = require('../utils').unDasherize; @@ -15,18 +16,19 @@ module.exports = function(app) { app.use(router); function nonprofitsDirectory(req, res, next) { - var sum = 0; - findNonprofits({}).subscribe( - function(nonprofits) { - nonprofits = nonprofits.sort(function(a, b) { - return b.moneySaved - a.moneySaved; - }); - totalSavings = function() { - for(i = 0; i < nonprofits.length; i++) { - sum += nonprofits[i].moneySaved; - } - return sum; - }(); + findNonprofits({ + order: 'moneySaved DESC' + }) + .flatMap( + (nonprofits = []) => { + // turn array of nonprofits into observable array + return Rx.Observable.from(nonprofits) + .pluck('moneySaved') + .reduce((sum, moneySaved = 0) => sum + moneySaved, 0); + }, + (nonprofits = [], totalSavings) => ({ nonprofits, totalSavings }) + ) + .subscribe(({ nonprofits, totalSavings }) => { res.render('nonprofits/directory', { title: 'Nonprofits we help', nonprofits: nonprofits, @@ -78,8 +80,6 @@ module.exports = function(app) { } } - - res.render('nonprofits/show', { dashedName: dashedNameFull, title: nonprofit.name,