Merge branch 'jameskopacz-patch-261' of https://github.com/jameskopacz/freecodecamp into jameskopacz-jameskopacz-patch-261

Conflicts:
	controllers/courseware.js
This commit is contained in:
Berkeley Martinez
2015-03-31 13:43:58 -07:00
5 changed files with 46 additions and 37 deletions

View File

@ -36,7 +36,7 @@ exports.index = function(req, res) {
}); });
}; };
exports.returnNextBonfire = function(req, res) { exports.returnNextBonfire = function(req, res, next) {
if (!req.user) { if (!req.user) {
return res.redirect('../bonfires/meet-bonfire'); return res.redirect('../bonfires/meet-bonfire');
} }
@ -49,24 +49,24 @@ exports.returnNextBonfire = function(req, res) {
return elem; return elem;
} }
}); });
req.user.save(); req.user.save(function(err) {
if (err) return next(err);
var uncompletedBonfires = req.user.uncompletedBonfires; var uncompletedBonfires = req.user.uncompletedBonfires;
var displayedBonfires = Bonfire.find({'_id': uncompletedBonfires[0]});
var displayedBonfires = Bonfire.find({'_id': uncompletedBonfires[0]}); displayedBonfires.exec(function(err, bonfire) {
displayedBonfires.exec(function(err, bonfire) { if (err) {
if (err) { return next(err);
next(err); }
} bonfire = bonfire.pop();
bonfire = bonfire.pop(); if (bonfire === undefined) {
if (bonfire === undefined) { req.flash('errors', {
req.flash('errors', { msg: "It looks like you've completed all the bonfires we have available. Good job!"
msg: "It looks like you've completed all the bonfires we have available. Good job!" });
}); return res.redirect('../bonfires/meet-bonfire');
return res.redirect('../bonfires/meet-bonfire'); }
} nameString = bonfire.name.toLowerCase().replace(/\s/g, '-');
nameString = bonfire.name.toLowerCase().replace(/\s/g, '-'); return res.redirect('../bonfires/' + nameString);
return res.redirect('../bonfires/' + nameString); });
}); });
}; };
@ -77,7 +77,7 @@ exports.returnIndividualBonfire = function(req, res, next) {
Bonfire.find({"name" : new RegExp(bonfireName, 'i')}, function(err, bonfire) { Bonfire.find({"name" : new RegExp(bonfireName, 'i')}, function(err, bonfire) {
if (err) { if (err) {
next(err); return next(err);
} }
@ -235,7 +235,7 @@ exports.generateChallenge = function(req, res) {
res.send(response); res.send(response);
}; };
exports.completedBonfire = function (req, res) { exports.completedBonfire = function (req, res, next) {
var isCompletedWith = req.body.bonfireInfo.completedWith || undefined; var isCompletedWith = req.body.bonfireInfo.completedWith || undefined;
var isCompletedDate = Math.round(+new Date() / 1000); var isCompletedDate = Math.round(+new Date() / 1000);
var bonfireHash = req.body.bonfireInfo.bonfireHash; var bonfireHash = req.body.bonfireInfo.bonfireHash;
@ -245,7 +245,7 @@ exports.completedBonfire = function (req, res) {
var paired = User.find({"profile.username": isCompletedWith.toLowerCase()}).limit(1); var paired = User.find({"profile.username": isCompletedWith.toLowerCase()}).limit(1);
paired.exec(function (err, pairedWith) { paired.exec(function (err, pairedWith) {
if (err) { if (err) {
return err; return next(err);
} else { } else {
var index = req.user.uncompletedBonfires.indexOf(bonfireHash); var index = req.user.uncompletedBonfires.indexOf(bonfireHash);
if (index > -1) { if (index > -1) {
@ -276,9 +276,12 @@ exports.completedBonfire = function (req, res) {
}) })
req.user.save(function (err, user) { req.user.save(function (err, user) {
if (err) {
return next(err);
}
pairedWith.save(function (err, paired) { pairedWith.save(function (err, paired) {
if (err) { if (err) {
throw err; return next(err);
} }
if (user && paired) { if (user && paired) {
res.send(true); res.send(true);
@ -304,7 +307,7 @@ exports.completedBonfire = function (req, res) {
req.user.save(function (err, user) { req.user.save(function (err, user) {
if (err) { if (err) {
throw err; return next(err);
} }
if (user) { if (user) {
debug('Saving user'); debug('Saving user');
@ -312,4 +315,4 @@ exports.completedBonfire = function (req, res) {
} }
}); });
} }
}; };

View File

@ -27,7 +27,7 @@ exports.returnNextChallenge = function(req, res) {
} }
}; };
exports.returnChallenge = function(req, res) { exports.returnChallenge = function(req, res, next) {
var challengeNumber = parseInt(req.params.challengeNumber) || 0; var challengeNumber = parseInt(req.params.challengeNumber) || 0;
if (challengeNumber === 2) { if (challengeNumber === 2) {
req.user.challengesHash[challengeNumber] = Math.round(+new Date() / 1000); req.user.challengesHash[challengeNumber] = Math.round(+new Date() / 1000);
@ -55,7 +55,7 @@ exports.returnChallenge = function(req, res) {
Challenge.find({}, null, { sort: { challengeNumber: 1 } }, function(err, c) { Challenge.find({}, null, { sort: { challengeNumber: 1 } }, function(err, c) {
if (err) { if (err) {
debug('Challenge err: ', err); debug('Challenge err: ', err);
next(err); return next(err);
} }
res.render('challenges/show', { res.render('challenges/show', {
title: 'Challenge: ' + c[challengeNumber].name, title: 'Challenge: ' + c[challengeNumber].name,

View File

@ -52,7 +52,7 @@ exports.returnNextCourseware = function(req, res, next) {
}); });
}); });
}; };
exports.returnIndividualCourseware = function(req, res, next) { exports.returnIndividualCourseware = function(req, res, next) {
@ -234,4 +234,4 @@ exports.completedCourseware = function (req, res, next) {
res.send(true) res.send(true)
} }
}); });
}; };

View File

@ -175,7 +175,9 @@ module.exports = {
if (req.user) { if (req.user) {
if (!req.user.profile.picture || req.user.profile.picture === "https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-180x180.png") { if (!req.user.profile.picture || req.user.profile.picture === "https://s3.amazonaws.com/freecodecamp/favicons/apple-touch-icon-180x180.png") {
req.user.profile.picture = "https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png"; req.user.profile.picture = "https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png";
req.user.save(); req.user.save(function(err) {
if (err) return next(err);
});
} }
} }
var date1 = new Date("10/15/2014"); var date1 = new Date("10/15/2014");

View File

@ -179,7 +179,7 @@ exports.postEmailSignup = function(req, res, next) {
].join('') ].join('')
}; };
transporter.sendMail(mailOptions, function(err) { transporter.sendMail(mailOptions, function(err) {
if (err) { return err; } if (err) { return next(err); }
}); });
}); });
}); });
@ -210,8 +210,9 @@ exports.getAccountAngular = function(req, res) {
* Unique username check API Call * Unique username check API Call
*/ */
exports.checkUniqueUsername = function(req, res) { exports.checkUniqueUsername = function(req, res, next) {
User.count({'profile.username': req.params.username.toLowerCase()}, function (err, data) { User.count({'profile.username': req.params.username.toLowerCase()}, function (err, data) {
if (err) { return next(err); }
if (data == 1) { if (data == 1) {
return res.send(true); return res.send(true);
} else { } else {
@ -223,8 +224,9 @@ exports.checkUniqueUsername = function(req, res) {
/** /**
* Existing username check * Existing username check
*/ */
exports.checkExistingUsername = function(req, res) { exports.checkExistingUsername = function(req, res, next) {
User.count({'profile.username': req.params.username.toLowerCase()}, function (err, data) { User.count({'profile.username': req.params.username.toLowerCase()}, function (err, data) {
if (err) { return next(err); }
if (data === 1) { if (data === 1) {
return res.send(true); return res.send(true);
} else { } else {
@ -237,8 +239,9 @@ exports.checkExistingUsername = function(req, res) {
* Unique email check API Call * Unique email check API Call
*/ */
exports.checkUniqueEmail = function(req, res) { exports.checkUniqueEmail = function(req, res, next) {
User.count({'email': decodeURIComponent(req.params.email).toLowerCase()}, function (err, data) { User.count({'email': decodeURIComponent(req.params.email).toLowerCase()}, function (err, data) {
if (err) { return next(err); }
if (data == 1) { if (data == 1) {
return res.send(true); return res.send(true);
} else { } else {
@ -255,10 +258,11 @@ exports.checkUniqueEmail = function(req, res) {
exports.returnUser = function(req, res, next) { exports.returnUser = function(req, res, next) {
User.find({'profile.username': req.params.username.toLowerCase()}, function(err, user) { User.find({'profile.username': req.params.username.toLowerCase()}, function(err, user) {
if (err) { debug('Username err: ', err); next(err); } if (err) { debug('Username err: ', err); return next(err); }
if (user[0]) { if (user[0]) {
var user = user[0]; var user = user[0];
Challenge.find({}, null, {sort: {challengeNumber: 1}}, function (err, c) { Challenge.find({}, null, {sort: {challengeNumber: 1}}, function (err, c) {
if (err) { return next(err); }
res.render('account/show', { res.render('account/show', {
title: 'Camper ' + user.profile.username + '\'s portfolio', title: 'Camper ' + user.profile.username + '\'s portfolio',
username: user.profile.username, username: user.profile.username,
@ -300,7 +304,7 @@ exports.returnUser = function(req, res, next) {
* Update profile information. * Update profile information.
*/ */
exports.updateProgress = function(req, res) { exports.updateProgress = function(req, res, next) {
User.findById(req.user.id, function(err, user) { User.findById(req.user.id, function(err, user) {
if (err) return next(err); if (err) return next(err);
user.email = req.body.email || ''; user.email = req.body.email || '';
@ -471,7 +475,7 @@ exports.getOauthUnlink = function(req, res, next) {
* Reset Password page. * Reset Password page.
*/ */
exports.getReset = function(req, res) { exports.getReset = function(req, res, next) {
if (req.isAuthenticated()) { if (req.isAuthenticated()) {
return res.redirect('/'); return res.redirect('/');
} }