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

This commit is contained in:
terakilobyte
2015-05-20 22:45:19 -04:00
parent 5e918bdd7c
commit 5ed5d5cd63
4 changed files with 4 additions and 172 deletions

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;
},