aboutsummaryrefslogtreecommitdiff
path: root/routes
diff options
context:
space:
mode:
authorHumairAK <humair88@hotmail.com>2016-07-26 20:44:06 +0000
committerHumairAK <humair88@hotmail.com>2016-07-26 20:44:06 +0000
commit9c10936cf1420f160a5007c6baad7b25ffb6d014 (patch)
treed3fb09efa5dc25cfe63eb6c4c783f415cba45597 /routes
parent3983edb2518acd91f991ad5fc6308bcaf46700f5 (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.js70
-rw-r--r--routes/user.js27
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);
- });
+ }
+
+
+
});