aboutsummaryrefslogtreecommitdiff
path: root/routes
diff options
context:
space:
mode:
authornanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-27 08:59:55 +0000
committernanalelfe <nargiza.nosirova@mail.utoronto.ca>2016-07-27 08:59:55 +0000
commit197e17a7bcbb5459897b7f334a790706c064c31c (patch)
treeaf4c3ebb095261dceac8fd00229d01bf1282f3d1 /routes
parentb0cbe2db0ee3311fc028e7229749726d4cfe6973 (diff)
parent21a885311321299163b4cae69d672baaddfba37b (diff)
Merge branch 'master' of https://github.com/HumairAK/solutions_repo
Diffstat (limited to 'routes')
-rw-r--r--routes/admin.js2
-rw-r--r--routes/index.js12
-rw-r--r--routes/user.js63
3 files changed, 70 insertions, 7 deletions
diff --git a/routes/admin.js b/routes/admin.js
index 565d2dd..aac7c70 100644
--- a/routes/admin.js
+++ b/routes/admin.js
@@ -35,7 +35,7 @@ app.use(express_validator({
router.get('/', isAdmin, function(req,res){
console.log(req.session.messages);
- res.render('admin', {csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors});
+ res.render('admin', {adminPanel: true, csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors});
req.session.errors = null;
req.session.messages = null;
});
diff --git a/routes/index.js b/routes/index.js
index ed79f12..16f2420 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -12,7 +12,7 @@ var passport = require('passport');
/* Render/GET homepage. */
router.get('/', function(req, res, next) {
//addFirstAdmin();
- res.render('index', {csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors});
+ res.render('index', {homePage: true, csrfToken: req.csrfToken(), success: req.session.success, errors: req.session.errors});
req.session.errors = null;
req.session.success = null;
req.session.messages = null;
@@ -112,6 +112,16 @@ router.get('/exams/:id', function(req, res, next) {
}
});
+router.get('/user/',function (req, res) {
+ req.checkParams('username','Please enter a username').notEmpty();
+ var errors = req.validationErrors();
+ if (errors){
+ req.session.errors = errors;
+ req.session.success = false;
+ res.redirect('/');
+ }
+});
+
/* Render user search page based on query */
router.get('/user/:query', function(req,res,next){
var query = req.params.query;
diff --git a/routes/user.js b/routes/user.js
index 7270a9f..cfa3a79 100644
--- a/routes/user.js
+++ b/routes/user.js
@@ -23,6 +23,7 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) {
var comments = [];
var inbox = [];
var error = null;
+ var follows = [];
function getComments() {
return new Promise(function(resolve, reject) {
dbFile.retrieve_userComments_history(req.user.user_name, function (success, object) {
@@ -46,7 +47,8 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) {
resolve(1);
} else if (object.length){
req.user.comments = object.length;
- comments = object;
+ req.user.comment_list = object;
+
resolve(1);
} else {
req.user.comments = object.length;
@@ -90,6 +92,45 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) {
});
}
+ function getFollows(){
+ return new Promise(function(resolve, reject) {
+ dbFile.retrieveFollows(req.user.user_name, function(success, data){
+ req.user.examfollows = [];
+ req.user.followerCount = data.length;
+ if(success && data.length){
+ var count = 1;
+ data.forEach(function(item){
+ dbFile.get_exam_byID(item, function(success, error, data){
+ if(success){
+ req.user.examfollows.push(data);
+ if(count == req.user.followerCount ){
+ console.log(req.user.examfollows);
+ resolve(1);
+ }else{
+ count++;
+ }
+ }else{
+ console.log("Error: Could not fetch one or more exams;");
+ resolve(1);
+ }
+ })
+ });
+
+ } else if(success && !data.length){
+ resolve(1);
+ console.log("Success: But no follows found;");
+ }
+ else{ //error
+ error = data;
+ console.log(error);
+ resolve(1);
+ }
+
+ });
+ });
+ }
+
+
/*function solutionsCount() {
return new Promise(function (resolve, reject) {
dbFile.retrieve_userSolutions_history(req.user.username, function (bool, results) {
@@ -108,9 +149,9 @@ router.get('/user_profile', loggedIn, isUser, function(req, res, next) {
- getComments().then(getMail).then(function (data) {
+ getComments().then(getMail).then(getFollows).then(function (data) {
console.log('got here fere');
- res.render('user_profile_alt', {inbox: inbox, error: error, csrfToken: req.csrfToken()});
+ res.render('user_profile_alt', {inbox: inbox, error: error, csrfToken: req.csrfToken(), userProfile: true});
});
//res.render('user_profile_alt', {comments : comments, inbox: inbox, csrfToken: req.csrfToken()});
@@ -338,16 +379,28 @@ router.post('/solution/vote/:examID/:qID/:solID', function(req, res, next){
});
-router.post('/follow_exam/:examID',function (req, res) {
- console.log("ENTERED THE FUNCTION FOLLOW EXAM!!");
+router.post('/follow_exam/:examID',function (req, res) {
var examId = req.params.examID;
if (req.isAuthenticated()){
console.log("Exam Id follow exam: " + examId);
console.log("Username follow exam: " + req.user.user_name);
+
+ dbFile.followExam(req.user.user_name,examId,function (success, message) {
+ if (success){
+ req.session.messages = {success : message};
+ res.redirect('/questions/' + examId);
+ }else{
+ req.session.messages = {error : message};
+ res.redirect('/questions/' + examId);
+ }
+
+ });
+
}else{
var message = "Must be logged in to follow an exam!";
+ console.log(message);
req.session.messages = {error : message};
res.redirect('/questions/' + examId);