reduce user saves, provide callbacks.

This commit is contained in:
terakilobyte
2015-05-21 00:08:12 -04:00
parent ca36f636a8
commit 17829b4bd3

View File

@ -109,19 +109,27 @@ exports.returnCurrentChallenge = function(req, res, next) {
return elem; return elem;
} }
}); });
req.user.save();
if (!req.user.currentChallenge) { if (!req.user.currentChallenge) {
req.user.currentChallenge = {}; req.user.currentChallenge = {};
req.user.currentChallenge.challengeId = challengeMapWithIds['0'][0]; req.user.currentChallenge.challengeId = challengeMapWithIds['0'][0];
req.user.currentChallenge.challengeName = challengeMapWithNames['0'][0]; req.user.currentChallenge.challengeName = challengeMapWithNames['0'][0];
req.user.currentChallenge.challengeBlock = '0'; req.user.currentChallenge.challengeBlock = '0';
req.user.save(); req.user.save(function(err) {
return res.redirect('../challenges/learn-how-free-code-camp-works'); if (err) {
return next(err);
}
return res.redirect('../challenges/learn-how-free-code-camp-works');
});
} }
var nameString = req.user.currentChallenge.challengeName.trim() var nameString = req.user.currentChallenge.challengeName.trim()
.toLowerCase() .toLowerCase()
.replace(/\s/g, '-'); .replace(/\s/g, '-');
return res.redirect('../challenges/' + nameString); req.user.save(function(err) {
if (err) {
return next(err);
}
return res.redirect('../challenges/' + nameString);
});
}; };
exports.returnIndividualChallenge = function(req, res, next) { exports.returnIndividualChallenge = function(req, res, next) {
@ -163,7 +171,6 @@ exports.returnIndividualChallenge = function(req, res, next) {
)) ))
}; };
} }
req.user.save();
var challengeType = { var challengeType = {
0: function() { 0: function() {
@ -269,9 +276,12 @@ exports.returnIndividualChallenge = function(req, res, next) {
}); });
} }
}; };
req.user.save(function(err) {
return challengeType[challenge.challengeType](); if (err) {
return next(err);
}
return challengeType[challenge.challengeType]();
});
}); });
}; };