Create helper methods in resources. Get map view working.

This commit is contained in:
terakilobyte
2015-05-20 13:07:41 -04:00
parent 77ddaa5b3a
commit 27a14dbf0f
4 changed files with 108 additions and 37 deletions

View File

@@ -4,13 +4,11 @@ var async = require('async'),
Story = require('./../models/Story'),
Nonprofit = require('./../models/Nonprofit'),
Comment = require('./../models/Comment'),
Courseware = require('./../models/Courseware'),
Challenge = require('./../models/Challenge'),
resources = require('./resources'),
steps = resources.steps,
secrets = require('./../config/secrets'),
bonfires = require('../seed_data/bonfires.json'),
nonprofits = require('../seed_data/nonprofits.json'),
coursewares = require('../seed_data/coursewares.json'),
moment = require('moment'),
https = require('https'),
debug = require('debug')('freecc:cntr:resources'),
@@ -18,38 +16,94 @@ var async = require('async'),
request = require('request'),
R = require('ramda');
var challengeTypes = {
'HTML_CSS_JQ': 0,
'JAVASCRIPT': 1,
'VIDEO': 2,
'ZIPLINE': 3,
'BASEJUMP': 4,
'BONFIRE': 5
};
module.exports = {
challengeMap: function challengeMap(req, res) {
var completedBonfires = [];
var completedList = [];
if (req.user) {
completedBonfires = req.user.completedBonfires.map(function (elem) {
return elem._id;
});
completedBonfires = req.user.completedChallenges
.filter(function (elem) {
return elem.challengeType === challengeTypes.BONFIRE;
})
.map(function(elem) {
return elem._id;
});
}
if (req.user) {
completedList = req.user.completedCoursewares.map(function (elem) {
return elem._id;
});
completedList = req.user.completedChallenges
.filter(function (elem) {
return elem.challengeType !== challengeTypes.BONFIRE;
});
}
var noDuplicateBonfires = R.uniq(completedBonfires);
var noDuplicatedCoursewares = R.uniq(completedList);
var noDuplicatedChallenges = R.uniq(completedList);
bonfireList = resources.allBonfireNames();
completedBonfireList = noDuplicateBonfires;
coursewareList = resources.allCoursewareNames();
completedCoursewareList = noDuplicatedCoursewares;
waypoints = coursewareList.filter(function(challenge) {
if (challenge.challengeType === 2 || challenge.challengeType === 0) { return challenge }
var completedBonfireList = noDuplicateBonfires
.map(function(bonfire) {
return bonfire._id;
});
var challengeList = resources.allChallenges();
var completedChallengeList = noDuplicatedChallenges
.map(function(challenge) {
return challenge._id;
});
var bonfireList = challengeList
.filter(function(challenge) {
return challenge.challengeType === challengeTypes.BONFIRE;
})
.map(function(bonfire) {
return ({
'_id': bonfire._id,
'name': bonfire.name
});
});
var waypoints = challengeList.filter(function(challenge) {
if (challenge.challengeType === challengeTypes.VIDEO
|| challenge.challengeType === challengeTypes.HTML_CSS_JQ
|| challenge.challengeType === challengeTypes.JAVASCRIPT) {
return challenge;
}
}).map(function(waypoint) {
return ({
'_id': waypoint._id,
'name': waypoint.name
});
});
ziplines = coursewareList.filter(function(challenge) {
if (challenge.challengeType === 3) { return challenge }
var ziplines = challengeList.filter(function(challenge) {
if (challenge.challengeType === challengeTypes.ZIPLINE) {
return challenge;
}
}).map(function(zipline) {
return ({
'_id': zipline._id,
'name': zipline.name
});
});
basejumps = coursewareList.filter(function(challenge) {
if (challenge.challengeType === 4) { return challenge }
var basejumps = challengeList.filter(function(challenge) {
if (challenge.challengeType === challengeTypes.BASEJUMP) {
return challenge;
}
}).map(function(basejump) {
return ({
'_id': basejump._id,
'name': basejump.name
});
});
function numberWithCommas(x) {
@@ -66,6 +120,7 @@ module.exports = {
debug('User err: ', err);
return next(err);
}
debug('Data for render is: ', completedBonfireList, completedChallengeList);
res.render('challengeMap/show', {
daysRunning: daysRunning,
camperCount: numberWithCommas(camperCount),
@@ -75,7 +130,7 @@ module.exports = {
ziplines: ziplines,
basejumps: basejumps,
completedBonfireList: completedBonfireList,
completedCoursewareList: completedCoursewareList
completedChallengeList: completedChallengeList
});
});
}