From ca3d46a7762fa973eedb9921268788ac2a943a57 Mon Sep 17 00:00:00 2001 From: Ashley Drake Date: Sat, 28 Mar 2015 13:53:26 -0400 Subject: [PATCH 1/3] fixed obvious error handlers --- controllers/courseware.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/controllers/courseware.js b/controllers/courseware.js index 58e57cef7d..586f7896a4 100644 --- a/controllers/courseware.js +++ b/controllers/courseware.js @@ -14,7 +14,7 @@ exports.coursewareNames = function(req, res) { }); }; -exports.returnNextCourseware = function(req, res) { +exports.returnNextCourseware = function(req, res, next) { if (!req.user) { return res.redirect('../coursewares/start-our-challenges'); } @@ -27,6 +27,8 @@ exports.returnNextCourseware = function(req, res) { return elem; } }); + + // *****CALLBACK req.user.save(); var uncompletedCoursewares = req.user.uncompletedCoursewares; @@ -34,7 +36,7 @@ exports.returnNextCourseware = function(req, res) { var displayedCoursewares = Courseware.find({'_id': uncompletedCoursewares[0]}); displayedCoursewares.exec(function(err, courseware) { if (err) { - next(err); + return next(err); } courseware = courseware.pop(); if (courseware === undefined) { @@ -55,7 +57,7 @@ exports.returnIndividualCourseware = function(req, res, next) { Courseware.find({"name" : new RegExp(coursewareName, 'i')}, function(err, courseware) { if (err) { - next(err); + return next(err); } // Handle not found if (courseware.length < 1) { @@ -203,7 +205,7 @@ exports.generateChallenge = function(req, res) { res.send(response); }; -exports.completedCourseware = function (req, res) { +exports.completedCourseware = function (req, res, next) { var isCompletedDate = Math.round(+new Date() / 1000); var coursewareHash = req.body.coursewareInfo.coursewareHash; @@ -221,7 +223,7 @@ exports.completedCourseware = function (req, res) { req.user.save(function (err, user) { if (err) { - throw err; + return next(err); } if (user) { res.send(true) From 69533424a3b900c2d9f909a3201bba6268af6bf6 Mon Sep 17 00:00:00 2001 From: Ashley Drake Date: Sat, 28 Mar 2015 14:01:31 -0400 Subject: [PATCH 2/3] Fixed user.save error callback handler --- controllers/courseware.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/controllers/courseware.js b/controllers/courseware.js index 586f7896a4..a9a84d7bf1 100644 --- a/controllers/courseware.js +++ b/controllers/courseware.js @@ -29,7 +29,14 @@ exports.returnNextCourseware = function(req, res, next) { }); // *****CALLBACK - req.user.save(); + req.user.save(function(err) { + if (err) { + return next(err); + } + else { + return; + } + }); var uncompletedCoursewares = req.user.uncompletedCoursewares; From 3e839030ac191064a6cbe5260bb2c058af1b81ff Mon Sep 17 00:00:00 2001 From: Ashley Drake Date: Sat, 28 Mar 2015 14:08:51 -0400 Subject: [PATCH 3/3] Fixed async function --- controllers/courseware.js | 40 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/controllers/courseware.js b/controllers/courseware.js index a9a84d7bf1..b0f89b1116 100644 --- a/controllers/courseware.js +++ b/controllers/courseware.js @@ -28,33 +28,31 @@ exports.returnNextCourseware = function(req, res, next) { } }); - // *****CALLBACK req.user.save(function(err) { if (err) { return next(err); } - else { - return; - } + + var uncompletedCoursewares = req.user.uncompletedCoursewares; + + var displayedCoursewares = Courseware.find({'_id': uncompletedCoursewares[0]}); + displayedCoursewares.exec(function(err, courseware) { + if (err) { + return next(err); + } + 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); + }); }); - var uncompletedCoursewares = req.user.uncompletedCoursewares; - - var displayedCoursewares = Courseware.find({'_id': uncompletedCoursewares[0]}); - displayedCoursewares.exec(function(err, courseware) { - if (err) { - return next(err); - } - 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) {