Merge pull request #273 from aldraco/coursewaresErr

Coursewares error handling (issue #261)
This commit is contained in:
Quincy Larson
2015-03-29 14:32:16 -07:00

View File

@ -14,7 +14,7 @@ exports.coursewareNames = function(req, res) {
}); });
}; };
exports.returnNextCourseware = function(req, res) { exports.returnNextCourseware = function(req, res, next) {
if (!req.user) { if (!req.user) {
return res.redirect('../coursewares/start-our-challenges'); return res.redirect('../coursewares/start-our-challenges');
} }
@ -27,25 +27,32 @@ exports.returnNextCourseware = function(req, res) {
return elem; return elem;
} }
}); });
req.user.save();
var uncompletedCoursewares = req.user.uncompletedCoursewares; req.user.save(function(err) {
var displayedCoursewares = Courseware.find({'_id': uncompletedCoursewares[0]});
displayedCoursewares.exec(function(err, courseware) {
if (err) { if (err) {
next(err); return next(err);
} }
courseware = courseware.pop();
if (courseware === undefined) { var uncompletedCoursewares = req.user.uncompletedCoursewares;
req.flash('errors', {
msg: "It looks like you've completed all the courses we have available. Good job!" var displayedCoursewares = Courseware.find({'_id': uncompletedCoursewares[0]});
}) displayedCoursewares.exec(function(err, courseware) {
return res.redirect('../coursewares/start-our-challenges'); if (err) {
} return next(err);
nameString = courseware.name.toLowerCase().replace(/\s/g, '-'); }
return res.redirect('../coursewares/' + nameString); courseware = courseware.pop();
if (courseware === undefined) {
req.flash('errors', {
msg: "It looks like you've completed all the courses we have available. Good job!"
})
return res.redirect('../coursewares/start-our-challenges');
}
nameString = courseware.name.toLowerCase().replace(/\s/g, '-');
return res.redirect('../coursewares/' + nameString);
});
}); });
}; };
exports.returnIndividualCourseware = function(req, res, next) { exports.returnIndividualCourseware = function(req, res, next) {
@ -55,7 +62,7 @@ exports.returnIndividualCourseware = function(req, res, next) {
Courseware.find({"name" : new RegExp(coursewareName, 'i')}, function(err, courseware) { Courseware.find({"name" : new RegExp(coursewareName, 'i')}, function(err, courseware) {
if (err) { if (err) {
next(err); return next(err);
} }
// Handle not found // Handle not found
if (courseware.length < 1) { if (courseware.length < 1) {
@ -203,7 +210,7 @@ exports.generateChallenge = function(req, res) {
res.send(response); res.send(response);
}; };
exports.completedCourseware = function (req, res) { exports.completedCourseware = function (req, res, next) {
var isCompletedDate = Math.round(+new Date() / 1000); var isCompletedDate = Math.round(+new Date() / 1000);
var coursewareHash = req.body.coursewareInfo.coursewareHash; var coursewareHash = req.body.coursewareInfo.coursewareHash;
@ -221,7 +228,7 @@ exports.completedCourseware = 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) {
res.send(true) res.send(true)