diff options
| author | Waref Haque <warefhaque@Warefs-MacBook-Pro.local> | 2016-07-26 04:13:04 +0000 |
|---|---|---|
| committer | Waref Haque <warefhaque@Warefs-MacBook-Pro.local> | 2016-07-26 04:13:04 +0000 |
| commit | 91a62e2808bdb17f787a5b234599c838d4fd5220 (patch) | |
| tree | 0cb8d3d44d9cbde0e0f9e793ff69df38433df3b2 /routes | |
| parent | 5e73fe37c32faf821d3d16f0251007e366cb090b (diff) | |
search bar validation
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/index.js | 83 |
1 files changed, 54 insertions, 29 deletions
diff --git a/routes/index.js b/routes/index.js index 347c91a..f71bc74 100644 --- a/routes/index.js +++ b/routes/index.js @@ -2,10 +2,10 @@ var dbFile = require("../node_simple.js"); var express = require('express'); var router = express.Router(); var csrf = require('csurf'); // Cross-Site Request Forgery prevention - +var express_validator = require("express-validator"); var csrfProtection = csrf(); router.use(csrfProtection); // router is protected - +router.use(express_validator); // Remove later var passport_file = require('../config/passport.js'); var bcrypt = require('bcrypt-nodejs'); @@ -13,7 +13,7 @@ var bcrypt = require('bcrypt-nodejs'); /* Render/GET homepage. */ router.get('/', function(req, res, next) { //addFirstAdmin(); - res.render('index'); + res.render('index', {csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors}); req.session.errors = null; req.session.success = null; @@ -59,33 +59,59 @@ router.get('/user_solutions', function(req, res, next) { title: 'Thry of Computation' } ] */ + +router.get('/exams/', function(req,res,next){ + req.check('search','Course code should be between 6 and 20 characters').notEmpty().withMessage('Course code required').isLength({min: 6, max: 20}); + + var errors = req.validationErrors(); + if (errors){ + console.log(errors); + req.session.errors = errors; + req.session.success = false; + res.redirect('/'); + } +}); + router.get('/exams/:id', function(req, res, next) { - var minExamInfoArray = []; - dbFile.get_all_exams(req.params.id, function (exams) { - if (exams.length == 0){ - console.log("Nothing was found"); - } - else { - //console.log(exams); - //only pass over the information that is necessary for the exams page - for (var i = 0; i<exams.length;i++){ - - var getInstructors = exams[i].instructors.join(", "); - var minExamInfo = { courseCode:exams[i].course_code, - year:exams[i].year, - term:toProperCase(exams[i].term), - instructors: getInstructors, - type:toProperCase(exams[i].type) + " Examination", - title:exams[i].title, - id:exams[i]._id, - questionCount : exams[i].questions_count - }; - //console.log(minExamInfo); - minExamInfoArray.push(minExamInfo); + + req.check('search','Course code should be between 6 and 20 characters').notEmpty().withMessage('Course code required').isLength({min: 6, max: 20}); + + var errors = req.validationErrors(); + if (errors){ + console.log("id " + errors); + req.session.errors = errors; + req.session.success = false; + res.redirect('/'); + }else{ + + var minExamInfoArray = []; + dbFile.get_all_exams(req.params.id, function (exams) { + if (exams.length == 0){ + console.log("Nothing was found"); } - } - res.render('exams', {query: req.params.id, result: minExamInfoArray}); - }); + else { + //console.log(exams); + //only pass over the information that is necessary for the exams page + for (var i = 0; i<exams.length;i++){ + + var getInstructors = exams[i].instructors.join(", "); + var minExamInfo = { courseCode:exams[i].course_code, + year:exams[i].year, + term:toProperCase(exams[i].term), + instructors: getInstructors, + type:toProperCase(exams[i].type) + " Examination", + title:exams[i].title, + id:exams[i]._id, + questionCount : exams[i].questions_count + }; + //console.log(minExamInfo); + minExamInfoArray.push(minExamInfo); + } + } + res.render('exams', {query: req.params.id, result: minExamInfoArray}); + }); + + } }); /* Render user search page based on query */ @@ -93,7 +119,6 @@ router.get('/user/:query', function(req,res,next){ var query = req.params.query; // Need to validate query - dbFile.search_users(query, function(success, result){ if(success){ console.log(result); |
