Factor out more mentions of courseware and bonfire. Remove extraneous methos from resources.js. Refactor sitemap to use new structure.

pull/466/head
terakilobyte 2015-05-20 22:45:19 -04:00
parent 5e918bdd7c
commit 5ed5d5cd63
4 changed files with 4 additions and 172 deletions

3
app.js
View File

@ -508,9 +508,6 @@ app.post('/completed-field-guide/', fieldGuideController.completedFieldGuide);
* Challenge related routes
*/
app.get('/getstuff', challengeController.getStuff);
app.get('/challenges/next-challenge', challengeController.returnNextChallenge);
app.get(

View File

@ -40,27 +40,6 @@ function getMDNlinks(links) {
return populatedLinks;
}
exports.showAllChallenges = function(req, res) {
var completedList = [];
if (req.user) {
completedList = req.user.completedChallenges.map(function (elem) {
return elem._id;
});
}
var noDuplicatedCoursewares = R.uniq(completedList);
var data = {};
data.coursewareList = resources.allCoursewareNames();
data.completedList = noDuplicatedCoursewares;
res.send(data);
};
exports.getStuff = function(req, res, next) {
res.render('coursewares/getstuff', {
stuff: resources.allChallengeIds(),
stuffWithIds: challengeMapWithIds
});
};
exports.returnNextChallenge = function(req, res, next) {
if (!req.user) {
return res.redirect('../challenges/learn-how-free-code-camp-works');
@ -451,7 +430,7 @@ exports.completedZiplineOrBasejump = function (req, res, next) {
req.user.completedChallenges.push({
_id: challengeId,
name: req.body.challengeInfo.coursewareName,
name: req.body.challengeInfo.challengeName,
completedWith: pairedWith._id,
completedDate: isCompletedDate,
solution: solutionLink,

View File

@ -1,17 +1,13 @@
var async = require('async'),
User = require('../models/User'),
Challenge = require('./../models/Challenge'),
Courseware = require('./../models/Courseware'),
Bonfire = require('./../models/Bonfire'),
Story = require('./../models/Story'),
FieldGuide = require('./../models/FieldGuide'),
Nonprofit = require('./../models/Nonprofit'),
Comment = require('./../models/Comment'),
resources = require('./resources.json'),
secrets = require('./../config/secrets'),
bonfires = require('../seed_data/bonfires.json'),
nonprofits = require('../seed_data/nonprofits.json'),
coursewares = require('../seed_data/coursewares.json'),
fieldGuides = require('../seed_data/field-guides.json'),
moment = require('moment'),
Twit = require('twit'),
@ -26,8 +22,7 @@ var async = require('async'),
/**
* Cached values
*/
var allBonfireIds, allBonfireNames, allCoursewareIds, allCoursewareNames,
allFieldGuideIds, allFieldGuideNames, allNonprofitNames,
var allFieldGuideIds, allFieldGuideNames, allNonprofitNames,
allBonfireIndexesAndNames, challengeMap, challengeMapWithIds,
challengeMapWithNames, allChallengeIds, allChallenges;
@ -140,29 +135,17 @@ module.exports = {
},
challenges: function (callback) {
Courseware.aggregate()
Challenge.aggregate()
.group({_id: 1, names: { $addToSet: '$name'}})
.exec(function (err, challenges) {
if (err) {
debug('Courseware err: ', err);
debug('Challenge err: ', err);
callback(err);
} else {
callback(null, challenges[0].names);
}
});
},
bonfires: function (callback) {
Bonfire.aggregate()
.group({_id: 1, names: { $addToSet: '$name'}})
.exec(function (err, bonfires) {
if (err) {
debug('Bonfire err: ', err);
callback(err);
} else {
callback(null, bonfires[0].names);
}
});
},
stories: function (callback) {
Story.aggregate()
.group({_id: 1, links: {$addToSet: '$link'}})
@ -210,7 +193,6 @@ module.exports = {
now: now,
users: results.users,
challenges: results.challenges,
bonfires: results.bonfires,
stories: results.stories,
nonprofits: results.nonprofits,
fieldGuides: results.fieldGuides
@ -363,52 +345,6 @@ module.exports = {
Math.random() * resources.compliments.length)];
},
allBonfireIds: function() {
if (allBonfireIds) {
return allBonfireIds;
} else {
allBonfireIds = bonfires.
map(function (elem) {
return {
_id: elem._id,
difficulty: elem.difficulty
};
}).
sort(function (a, b) {
return a.difficulty - b.difficulty;
}).
map(function (elem) {
return elem._id;
});
return allBonfireIds;
}
},
bonfiresIndexesAndNames: function() {
if (allBonfireIndexesAndNames) {
return allBonfireIndexesAndNames
} else {
var obj = {};
bonfires.forEach(function(elem) {
obj[elem._id] = elem.name;
});
allBonfireIndexesAndNames = obj;
return allBonfireIndexesAndNames;
}
},
ensureBonfireNames: function(completedBonfires) {
return completedBonfires.map(function(elem) {
return ({
name: this.bonfiresIndexesAndNames()[elem._id],
_id: elem.id,
completedDate: elem.completedDate,
completedWith: elem.completedWith,
solution: elem.solution
});
}.bind(this));
},
allFieldGuideIds: function() {
if (allFieldGuideIds) {
return allFieldGuideIds;
@ -421,31 +357,6 @@ module.exports = {
}
},
allBonfireNames: function() {
if (allBonfireNames) {
return allBonfireNames;
} else {
allBonfireNames = bonfires.
map(function (elem) {
return {
name: elem.name,
difficulty: elem.difficulty,
_id: elem._id
};
}).
sort(function (a, b) {
return a.difficulty - b.difficulty;
}).
map(function (elem) {
return {
name: elem.name,
_id: elem._id
};
});
return allBonfireNames;
}
},
allFieldGuideNames: function() {
if (allFieldGuideNames) {
return allFieldGuideNames;
@ -474,54 +385,6 @@ module.exports = {
}
},
allCoursewareIds: function() {
if (allCoursewareIds) {
return allCoursewareIds;
} else {
allCoursewareIds = coursewares.
map(function (elem) {
return {
_id: elem._id,
difficulty: elem.difficulty
};
}).
sort(function (a, b) {
return a.difficulty - b.difficulty;
}).
map(function (elem) {
return elem._id;
});
return allCoursewareIds;
}
},
allCoursewareNames: function() {
if (allCoursewareNames) {
return allCoursewareNames;
} else {
allCoursewareNames = coursewares.
map(function (elem) {
return {
name: elem.name,
difficulty: elem.difficulty,
challengeType: elem.challengeType,
_id: elem._id
};
}).
sort(function (a, b) {
return a.difficulty - b.difficulty;
}).
map(function (elem) {
return {
name: elem.name,
challengeType: elem.challengeType,
_id: elem._id
};
});
return allCoursewareNames;
}
},
whichEnvironment: function() {
return process.env.NODE_ENV;
},

View File

@ -39,13 +39,6 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
changefreq daily
priority= 0.5
each bonfire in bonfires
url
loc #{appUrl}/bonfires/#{bonfire.replace(/\s/g, '-')}
lastmod= now
changefreq weekly
priority= 0.5
each challenge in challenges
url
loc #{appUrl}/challenges/#{challenge.replace(/\s/g, '-')}