From a74eafaf7fe3dddc943941113a4cc91f21d1522d Mon Sep 17 00:00:00 2001 From: "will.shull@gmail.com" Date: Sat, 14 Nov 2015 18:41:21 -0800 Subject: [PATCH 1/2] very helpful commit message --- .../users/controllers/scorecard_controller.js | 9 +++++++- models/user_model.js | 23 ++++++++++--------- routes/categories_routes.js | 1 - routes/users_routes.js | 21 +++++++++++++---- 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/app/js/users/controllers/scorecard_controller.js b/app/js/users/controllers/scorecard_controller.js index 79df826..78f5ebb 100644 --- a/app/js/users/controllers/scorecard_controller.js +++ b/app/js/users/controllers/scorecard_controller.js @@ -9,6 +9,13 @@ module.exports = function(app) { $scope.user = $rootScope.user; } + $http.put('/savescore/', { right: $rootscope.right, category: $rootscope.gameData.category}) + .then(function(res) { + $rootscope.user = res.data.msg; + }).then(function(res) { + console.log(res); + }); + var scoreArr = $rootScope.scoreArr; $scope.right = $rootScope.right; $scope.wrong = $rootScope.wrong; @@ -57,4 +64,4 @@ module.exports = function(app) { }; $scope.showResults(); }]) -}; \ No newline at end of file +}; diff --git a/models/user_model.js b/models/user_model.js index 4f1d27b..b379087 100644 --- a/models/user_model.js +++ b/models/user_model.js @@ -9,31 +9,32 @@ var userSchema = new Schema({ password: String, token: String, avatar: String, - category1: { + sports: { correct: Number, total: Number }, - category2: { + entertainment: { correct: Number, total: Number }, - category3: { + history: { correct: Number, total: Number }, - category4: { + science: { correct: Number, total: Number } }); -//user stats + userSchema.methods.userCategoryStats = function(category) { - if(err) return err; - this.category = category; - var correct = this.correct; - var total = this.total; - var average = correct/total; - return average; + console.log('this.category val: ', this[category]); + return this[category].correct / this[category].total; + // this.category = category; + // var correct = this.correct; + // var total = this.total; + // var average = correct/total; + // return average; }; userSchema.methods.generateHash = function(pw, cb) { diff --git a/routes/categories_routes.js b/routes/categories_routes.js index 740784b..19e8425 100644 --- a/routes/categories_routes.js +++ b/routes/categories_routes.js @@ -12,7 +12,6 @@ var categoryRouter = module.exports = exports = express.Router(); categoryRouter.use(passport.initialize()); categoryRouter.get('/categories/:category', bearerAuth.bearerAuthentication, function (req, res) { - Category.findOne({category: req.params.category}, function (err, data) { if (err) return (err, res); var questions = _.sample(data.questions, 5); diff --git a/routes/users_routes.js b/routes/users_routes.js index e2dacd0..e897019 100644 --- a/routes/users_routes.js +++ b/routes/users_routes.js @@ -18,10 +18,10 @@ usersRouter.post('/signup', jsonParser, function(req, res) { correct: 0, total: 0 }; - newUser.category1 = winLoss; - newUser.category2 = winLoss; - newUser.category3 = winLoss; - newUser.category4 = winLoss; + newUser.sports = winLoss; + newUser.entertainment = winLoss; + newUser.history = winLoss; + newUser.science = winLoss; newUser.generateHash(req.body.password, function(err, hash) { if (err) return handleError.err500(err, res); newUser.generateToken(function(err, token) { @@ -52,6 +52,19 @@ usersRouter.get('/username', bearerAuth.bearerAuthentication, function(req, res) handleResponse.send200(res, req.user) }); +usersRouter.put('/savescore/:results', bearerAuth.bearerAuthentication, function(req, res) { + var newScore = req.params.results; + req.user[newScore.category].correct += newScore.right; + req.user[newScore.category].total += 5; + console.log('/savescore updated category: ', req.user[newScore.category]); + User.findOneAndUpdate(req.user._id, { newScore.category: req.user[newScore.category] }, function(err, data) { + if (err) return handleError.err500(err, res); + var user = data.toObject(); + delete user.password; + handleResponse.send200(res, user); + }); +}); + usersRouter.get('/errRoute', function(req, res) { res.append('WWW-Authenticate', 'Bad authentikitty!'); handleError.err401(null, res); From 98dc547f6cdb386a0f374efd00e2badfe12e3e69 Mon Sep 17 00:00:00 2001 From: "will.shull@gmail.com" Date: Sat, 14 Nov 2015 22:36:34 -0800 Subject: [PATCH 2/2] Added a route to save the results from a completed game. Changed the rating calculation to be done before updating the DB, also added a rating field to user model. updated profile_view to reflect the users data --- .../users/controllers/profile_controller.js | 4 +-- .../users/controllers/scorecard_controller.js | 6 ++-- app/templates/views/profile_view.html | 8 ++--- models/user_model.js | 22 +++++--------- routes/users_routes.js | 30 +++++++++---------- 5 files changed, 31 insertions(+), 39 deletions(-) diff --git a/app/js/users/controllers/profile_controller.js b/app/js/users/controllers/profile_controller.js index 18278a6..fa1a865 100644 --- a/app/js/users/controllers/profile_controller.js +++ b/app/js/users/controllers/profile_controller.js @@ -14,5 +14,5 @@ module.exports = function(app) { return correct/total; }; - }]) -} + }]); +}; diff --git a/app/js/users/controllers/scorecard_controller.js b/app/js/users/controllers/scorecard_controller.js index 78f5ebb..2fc9802 100644 --- a/app/js/users/controllers/scorecard_controller.js +++ b/app/js/users/controllers/scorecard_controller.js @@ -9,10 +9,10 @@ module.exports = function(app) { $scope.user = $rootScope.user; } - $http.put('/savescore/', { right: $rootscope.right, category: $rootscope.gameData.category}) + $http.put('/api/savescore', { correct: $rootScope.right, category: $rootScope.gameData.category }) .then(function(res) { - $rootscope.user = res.data.msg; - }).then(function(res) { + $rootScope.user = res.data.msg; + }, function(res) { console.log(res); }); diff --git a/app/templates/views/profile_view.html b/app/templates/views/profile_view.html index ad97e79..e28db2d 100644 --- a/app/templates/views/profile_view.html +++ b/app/templates/views/profile_view.html @@ -10,19 +10,19 @@

TriviApp

diff --git a/models/user_model.js b/models/user_model.js index b379087..3f50b07 100644 --- a/models/user_model.js +++ b/models/user_model.js @@ -11,32 +11,26 @@ var userSchema = new Schema({ avatar: String, sports: { correct: Number, - total: Number + total: Number, + rating: Number }, entertainment: { correct: Number, - total: Number + total: Number, + rating: Number }, history: { correct: Number, - total: Number + total: Number, + rating: Number }, science: { correct: Number, - total: Number + total: Number, + rating: Number } }); -userSchema.methods.userCategoryStats = function(category) { - console.log('this.category val: ', this[category]); - return this[category].correct / this[category].total; - // this.category = category; - // var correct = this.correct; - // var total = this.total; - // var average = correct/total; - // return average; -}; - userSchema.methods.generateHash = function(pw, cb) { bcrypt.hash(pw, 8, function(err, hash) { if (err) return cb(err); diff --git a/routes/users_routes.js b/routes/users_routes.js index e897019..d1f0516 100644 --- a/routes/users_routes.js +++ b/routes/users_routes.js @@ -16,7 +16,8 @@ usersRouter.post('/signup', jsonParser, function(req, res) { newUser.avatar = req.body.avatar; var winLoss = { correct: 0, - total: 0 + total: 0, + rating: 0 }; newUser.sports = winLoss; newUser.entertainment = winLoss; @@ -31,7 +32,6 @@ usersRouter.post('/signup', jsonParser, function(req, res) { if (err) return handleError.err500(err, res); var user = data.toObject(); delete user.password; - console.log('signup route saved user: ', user); handleResponse.send201(res, user); }); }); @@ -41,26 +41,30 @@ usersRouter.post('/signup', jsonParser, function(req, res) { usersRouter.get('/signin', basicAuth.basicAuthentication, function(req, res) { var user = req.user.toObject(); delete user.password; - console.log('signin route toObject var: ', user); handleResponse.send200(res, user); }); usersRouter.get('/username', bearerAuth.bearerAuthentication, function(req, res) { var user = req.user.toObject(); delete user.password; - console.log('username route toObject var: ', user); handleResponse.send200(res, req.user) }); -usersRouter.put('/savescore/:results', bearerAuth.bearerAuthentication, function(req, res) { - var newScore = req.params.results; - req.user[newScore.category].correct += newScore.right; - req.user[newScore.category].total += 5; - console.log('/savescore updated category: ', req.user[newScore.category]); - User.findOneAndUpdate(req.user._id, { newScore.category: req.user[newScore.category] }, function(err, data) { +usersRouter.put('/savescore', bearerAuth.bearerAuthentication, jsonParser, function(req, res) { + var category = req.body.category; + var correct = req.body.correct; + var userRecord = req.user[category] + var updateObj = {}; + userRecord.correct += correct; + userRecord.total += 5; + userRecord.rating = userRecord.correct / userRecord.total * 100; + updateObj[category] = userRecord; + console.log('updateObj: ', updateObj); + User.findByIdAndUpdate(req.user._id, updateObj, { 'new': true }, function(err, data) { if (err) return handleError.err500(err, res); var user = data.toObject(); delete user.password; + console.log('savescore updated user: ', user); handleResponse.send200(res, user); }); }); @@ -69,9 +73,3 @@ usersRouter.get('/errRoute', function(req, res) { res.append('WWW-Authenticate', 'Bad authentikitty!'); handleError.err401(null, res); }); - - - - - -