diff options
| author | HumairAK <humair88@hotmail.com> | 2016-07-26 20:44:06 +0000 |
|---|---|---|
| committer | HumairAK <humair88@hotmail.com> | 2016-07-26 20:44:06 +0000 |
| commit | 9c10936cf1420f160a5007c6baad7b25ffb6d014 (patch) | |
| tree | d3fb09efa5dc25cfe63eb6c4c783f415cba45597 /routes | |
| parent | 3983edb2518acd91f991ad5fc6308bcaf46700f5 (diff) | |
Added more unit tests, fixed some bugs in the code, fixed voting alert prompts and redirects
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/index.js | 70 | ||||
| -rw-r--r-- | routes/user.js | 27 |
2 files changed, 53 insertions, 44 deletions
diff --git a/routes/index.js b/routes/index.js index cb91765..54bf058 100644 --- a/routes/index.js +++ b/routes/index.js @@ -14,6 +14,7 @@ router.get('/', function(req, res, next) { res.render('index', {csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors}); req.session.errors = null; req.session.success = null; + req.session.messages = null; }); @@ -62,7 +63,6 @@ router.get('/exams/', function(req,res,next){ req.checkParams('id','Course code should be between 6').notEmpty().withMessage('Course code required').isLength({min: 6, max: 6}); var errors = req.validationErrors(); if (errors){ - console.log(errors); req.session.errors = errors; req.session.success = false; res.redirect('/'); @@ -153,45 +153,45 @@ router.get('/search/:type', function(req, res, next) { * comments = number of comments*/ router.get('/questions/:exam_id', function (req,res) { var examID = req.params.exam_id; - console.log(examID); dbFile.get_exam_byID(examID, function(success, error, exam){ - /* [ - { q_id: 1, question: 'this is q1' }, - { q_id: 2, question: 'this is q2' } - ] - */ - var qList = exam.questions_list; - - // Add comments/solutions - dbFile.get_exam_info_by_ID(examID, function (questionsInfo) { - qList.forEach(function(question){ - question.count = 0; - question.comments = 0; - - // Find q_id in questionsInfo, update comment/solutions count - questionsInfo.forEach(function(q){ - if (question.q_id == q._id){ - question.count += q.count; - question.comments += q.comments; - } + if(success && exam){ + var qList = exam.questions_list; + // Add comments/solutions + dbFile.get_exam_info_by_ID(examID, function (questionsInfo) { + qList.forEach(function(question){ + question.count = 0; + question.comments = 0; + + // Find q_id in questionsInfo, update comment/solutions count + questionsInfo.forEach(function(q){ + if (question.q_id == q._id){ + question.count += q.count; + question.comments += q.comments; + } + }); }); + + var examInfo = { + id : exam._id, + courseCode : exam.course_code, + term : toProperCase(exam.term), + type : toProperCase(exam.type), + year : exam.year, + instructors : exam.instructors.join(), + uploadDate : exam.upload_date, + uploader : exam.uploaded_by, + pageCount : exam.page_count, + questionCount : exam.questions_count + }; + res.render('questions', {query: qList, examInfo: examInfo}); }); + }else{ + req.session.messages = {error : "Could not find exam."}; + res.redirect('/'); + } + - var examInfo = { - id : exam._id, - courseCode : exam.course_code, - term : toProperCase(exam.term), - type : toProperCase(exam.type), - year : exam.year, - instructors : exam.instructors.join(), - uploadDate : exam.upload_date, - uploader : exam.uploaded_by, - pageCount : exam.page_count, - questionCount : exam.questions_count - }; - res.render('questions', {query: qList, examInfo: examInfo}); - }); }); }); diff --git a/routes/user.js b/routes/user.js index 39ffbf1..6e9815e 100644 --- a/routes/user.js +++ b/routes/user.js @@ -312,20 +312,29 @@ router.post('/comment/submit/:examID/:qID/:solID', function(req, res, next){ } }); -router.post('/solution/vote/:examID/:qID/:solID', loggedIn, function(req, res, next){ +router.post('/solution/vote/:examID/:qID/:solID', function(req, res, next){ var vote = req.body.vote; var examID = req.params.examID; var qID = req.params.qID; var solutionID = req.params.solID; - dbFile.vote_solution(solutionID, vote, function(voteCounted, statusMsg){ - if(voteCounted){ - console.log("Success!"); - }else{ - console.log("Action failed!"); - } - console.log(statusMsg); // Change to display message above + + if(req.isAuthenticated()){ + dbFile.vote_solution(solutionID, vote, function(voteCounted, statusMsg){ + if(voteCounted){ + res.redirect('/solutions/' + examID + '/' + qID); + }else{ + req.session.messages = {error : statusMsg}; + res.redirect('/solutions/' + examID + '/' + qID); + } + }); + } else { //User not logged in + var message = "Must be logged in to Vote!"; + req.session.messages = {error : message}; res.redirect('/solutions/' + examID + '/' + qID); - }); + } + + + }); |
