Factor out more mentions of courseware and bonfire. Remove extraneous methos from resources.js. Refactor sitemap to use new structure.
parent
5e918bdd7c
commit
5ed5d5cd63
3
app.js
3
app.js
|
@ -508,9 +508,6 @@ app.post('/completed-field-guide/', fieldGuideController.completedFieldGuide);
|
||||||
* Challenge related routes
|
* Challenge related routes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
app.get('/getstuff', challengeController.getStuff);
|
|
||||||
|
|
||||||
|
|
||||||
app.get('/challenges/next-challenge', challengeController.returnNextChallenge);
|
app.get('/challenges/next-challenge', challengeController.returnNextChallenge);
|
||||||
|
|
||||||
app.get(
|
app.get(
|
||||||
|
|
|
@ -40,27 +40,6 @@ function getMDNlinks(links) {
|
||||||
return populatedLinks;
|
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) {
|
exports.returnNextChallenge = function(req, res, next) {
|
||||||
if (!req.user) {
|
if (!req.user) {
|
||||||
return res.redirect('../challenges/learn-how-free-code-camp-works');
|
return res.redirect('../challenges/learn-how-free-code-camp-works');
|
||||||
|
@ -451,7 +430,7 @@ exports.completedZiplineOrBasejump = function (req, res, next) {
|
||||||
|
|
||||||
req.user.completedChallenges.push({
|
req.user.completedChallenges.push({
|
||||||
_id: challengeId,
|
_id: challengeId,
|
||||||
name: req.body.challengeInfo.coursewareName,
|
name: req.body.challengeInfo.challengeName,
|
||||||
completedWith: pairedWith._id,
|
completedWith: pairedWith._id,
|
||||||
completedDate: isCompletedDate,
|
completedDate: isCompletedDate,
|
||||||
solution: solutionLink,
|
solution: solutionLink,
|
||||||
|
|
|
@ -1,17 +1,13 @@
|
||||||
var async = require('async'),
|
var async = require('async'),
|
||||||
User = require('../models/User'),
|
User = require('../models/User'),
|
||||||
Challenge = require('./../models/Challenge'),
|
Challenge = require('./../models/Challenge'),
|
||||||
Courseware = require('./../models/Courseware'),
|
|
||||||
Bonfire = require('./../models/Bonfire'),
|
|
||||||
Story = require('./../models/Story'),
|
Story = require('./../models/Story'),
|
||||||
FieldGuide = require('./../models/FieldGuide'),
|
FieldGuide = require('./../models/FieldGuide'),
|
||||||
Nonprofit = require('./../models/Nonprofit'),
|
Nonprofit = require('./../models/Nonprofit'),
|
||||||
Comment = require('./../models/Comment'),
|
Comment = require('./../models/Comment'),
|
||||||
resources = require('./resources.json'),
|
resources = require('./resources.json'),
|
||||||
secrets = require('./../config/secrets'),
|
secrets = require('./../config/secrets'),
|
||||||
bonfires = require('../seed_data/bonfires.json'),
|
|
||||||
nonprofits = require('../seed_data/nonprofits.json'),
|
nonprofits = require('../seed_data/nonprofits.json'),
|
||||||
coursewares = require('../seed_data/coursewares.json'),
|
|
||||||
fieldGuides = require('../seed_data/field-guides.json'),
|
fieldGuides = require('../seed_data/field-guides.json'),
|
||||||
moment = require('moment'),
|
moment = require('moment'),
|
||||||
Twit = require('twit'),
|
Twit = require('twit'),
|
||||||
|
@ -26,8 +22,7 @@ var async = require('async'),
|
||||||
/**
|
/**
|
||||||
* Cached values
|
* Cached values
|
||||||
*/
|
*/
|
||||||
var allBonfireIds, allBonfireNames, allCoursewareIds, allCoursewareNames,
|
var allFieldGuideIds, allFieldGuideNames, allNonprofitNames,
|
||||||
allFieldGuideIds, allFieldGuideNames, allNonprofitNames,
|
|
||||||
allBonfireIndexesAndNames, challengeMap, challengeMapWithIds,
|
allBonfireIndexesAndNames, challengeMap, challengeMapWithIds,
|
||||||
challengeMapWithNames, allChallengeIds, allChallenges;
|
challengeMapWithNames, allChallengeIds, allChallenges;
|
||||||
|
|
||||||
|
@ -140,29 +135,17 @@ module.exports = {
|
||||||
},
|
},
|
||||||
|
|
||||||
challenges: function (callback) {
|
challenges: function (callback) {
|
||||||
Courseware.aggregate()
|
Challenge.aggregate()
|
||||||
.group({_id: 1, names: { $addToSet: '$name'}})
|
.group({_id: 1, names: { $addToSet: '$name'}})
|
||||||
.exec(function (err, challenges) {
|
.exec(function (err, challenges) {
|
||||||
if (err) {
|
if (err) {
|
||||||
debug('Courseware err: ', err);
|
debug('Challenge err: ', err);
|
||||||
callback(err);
|
callback(err);
|
||||||
} else {
|
} else {
|
||||||
callback(null, challenges[0].names);
|
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) {
|
stories: function (callback) {
|
||||||
Story.aggregate()
|
Story.aggregate()
|
||||||
.group({_id: 1, links: {$addToSet: '$link'}})
|
.group({_id: 1, links: {$addToSet: '$link'}})
|
||||||
|
@ -210,7 +193,6 @@ module.exports = {
|
||||||
now: now,
|
now: now,
|
||||||
users: results.users,
|
users: results.users,
|
||||||
challenges: results.challenges,
|
challenges: results.challenges,
|
||||||
bonfires: results.bonfires,
|
|
||||||
stories: results.stories,
|
stories: results.stories,
|
||||||
nonprofits: results.nonprofits,
|
nonprofits: results.nonprofits,
|
||||||
fieldGuides: results.fieldGuides
|
fieldGuides: results.fieldGuides
|
||||||
|
@ -363,52 +345,6 @@ module.exports = {
|
||||||
Math.random() * resources.compliments.length)];
|
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() {
|
allFieldGuideIds: function() {
|
||||||
if (allFieldGuideIds) {
|
if (allFieldGuideIds) {
|
||||||
return 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() {
|
allFieldGuideNames: function() {
|
||||||
if (allFieldGuideNames) {
|
if (allFieldGuideNames) {
|
||||||
return 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() {
|
whichEnvironment: function() {
|
||||||
return process.env.NODE_ENV;
|
return process.env.NODE_ENV;
|
||||||
},
|
},
|
||||||
|
|
|
@ -39,13 +39,6 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
|
||||||
changefreq daily
|
changefreq daily
|
||||||
priority= 0.5
|
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
|
each challenge in challenges
|
||||||
url
|
url
|
||||||
loc #{appUrl}/challenges/#{challenge.replace(/\s/g, '-')}
|
loc #{appUrl}/challenges/#{challenge.replace(/\s/g, '-')}
|
||||||
|
|
Loading…
Reference in New Issue