83 lines
2.7 KiB
JavaScript
83 lines
2.7 KiB
JavaScript
var async = require('async'),
|
|
User = require('../models/User'),
|
|
Bonfire = require('./../models/Bonfire'),
|
|
Story = require('./../models/Story'),
|
|
Nonprofit = require('./../models/Nonprofit'),
|
|
Comment = require('./../models/Comment'),
|
|
Courseware = require('./../models/Courseware'),
|
|
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'),
|
|
cheerio = require('cheerio'),
|
|
request = require('request'),
|
|
R = require('ramda');
|
|
|
|
module.exports = {
|
|
challengeMap: function challengeMap(req, res) {
|
|
var completedBonfires = [];
|
|
var completedList = [];
|
|
|
|
if (req.user) {
|
|
completedBonfires = req.user.completedBonfires.map(function (elem) {
|
|
return elem._id;
|
|
});
|
|
}
|
|
|
|
if (req.user) {
|
|
completedList = req.user.completedCoursewares.map(function (elem) {
|
|
return elem._id;
|
|
});
|
|
}
|
|
|
|
var noDuplicateBonfires = R.uniq(completedBonfires);
|
|
var noDuplicatedCoursewares = R.uniq(completedList);
|
|
|
|
bonfireList = resources.allBonfireNames();
|
|
completedBonfireList = noDuplicateBonfires;
|
|
coursewareList = resources.allCoursewareNames();
|
|
completedCoursewareList = noDuplicatedCoursewares;
|
|
waypoints = coursewareList.filter(function(challenge) {
|
|
if (challenge.challengeType === 2) { return challenge }
|
|
});
|
|
ziplines = coursewareList.filter(function(challenge) {
|
|
if (challenge.challengeType === 3) { return challenge }
|
|
});
|
|
basejumps = coursewareList.filter(function(challenge) {
|
|
if (challenge.challengeType === 4) { return challenge }
|
|
});
|
|
|
|
function numberWithCommas(x) {
|
|
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
}
|
|
|
|
var date1 = new Date("10/15/2014");
|
|
var date2 = new Date();
|
|
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
|
|
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
|
|
|
User.count({}, function (err, camperCount) {
|
|
if (err) {
|
|
debug('User err: ', err);
|
|
return next(err);
|
|
}
|
|
res.render('challengeMap/show', {
|
|
daysRunning: daysRunning,
|
|
camperCount: numberWithCommas(camperCount),
|
|
title: "A map of all Free Code Camp's Challenges",
|
|
bonfires: bonfireList,
|
|
waypoints: waypoints,
|
|
ziplines: ziplines,
|
|
basejumps: basejumps,
|
|
completedBonfireList: completedBonfireList,
|
|
completedCoursewareList: completedCoursewareList
|
|
});
|
|
});
|
|
}
|
|
};
|