Create helper methods in resources. Get map view working.
This commit is contained in:
@@ -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
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user