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 79df826..2fc9802 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('/api/savescore', { correct: $rootScope.right, category: $rootScope.gameData.category }) + .then(function(res) { + $rootScope.user = res.data.msg; + }, 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/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 4f1d27b..3f50b07 100644 --- a/models/user_model.js +++ b/models/user_model.js @@ -9,32 +9,27 @@ var userSchema = new Schema({ password: String, token: String, avatar: String, - category1: { + sports: { correct: Number, - total: Number + total: Number, + rating: Number }, - category2: { + entertainment: { correct: Number, - total: Number + total: Number, + rating: Number }, - category3: { + history: { correct: Number, - total: Number + total: Number, + rating: Number }, - category4: { + science: { correct: Number, - total: Number + total: Number, + rating: 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; -}; userSchema.methods.generateHash = function(pw, cb) { bcrypt.hash(pw, 8, function(err, hash) { 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..d1f0516 100644 --- a/routes/users_routes.js +++ b/routes/users_routes.js @@ -16,12 +16,13 @@ usersRouter.post('/signup', jsonParser, function(req, res) { newUser.avatar = req.body.avatar; var winLoss = { correct: 0, - total: 0 + total: 0, + rating: 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) { @@ -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,24 +41,35 @@ 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', 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); + }); +}); + usersRouter.get('/errRoute', function(req, res) { res.append('WWW-Authenticate', 'Bad authentikitty!'); handleError.err401(null, res); }); - - - - - -