diff --git a/public/js/controllers/challengesCtrl.js b/public/js/controllers/challengesCtrl.js index 0a0432659f..92563116b9 100644 --- a/public/js/controllers/challengesCtrl.js +++ b/public/js/controllers/challengesCtrl.js @@ -108,7 +108,7 @@ habitrpg.controller("ChallengesCtrl", ['$scope', 'User', 'Challenges', 'Notifica }; $scope.selectWinner = function(challenge) { if (!confirm("Are you sure?")) return; - challenge.$selectWinner({uid:challenge.winner}, function(){ + challenge.$close({uid:challenge.winner}, function(){ $scope.popoverEl.popover('destroy'); backToChallenges(); }) diff --git a/public/js/services/challengeServices.js b/public/js/services/challengeServices.js index eaf4693845..7e3c35f0e9 100644 --- a/public/js/services/challengeServices.js +++ b/public/js/services/challengeServices.js @@ -12,7 +12,8 @@ angular.module('challengeServices', ['ngResource']). { //'query': {method: "GET", isArray:false} join: {method: "POST", url: API_URL + '/api/v1/challenges/:cid/join'}, - leave: {method: "POST", url: API_URL + '/api/v1/challenges/:cid/leave'} + leave: {method: "POST", url: API_URL + '/api/v1/challenges/:cid/leave'}, + close: {method: "POST", params: {uid:''}, url: API_URL + '/api/v1/challenges/:cid/close'} }); //var challenges = []; diff --git a/src/controllers/challenges.js b/src/controllers/challenges.js index 0d3e78008e..2e9ed49075 100644 --- a/src/controllers/challenges.js +++ b/src/controllers/challenges.js @@ -228,7 +228,7 @@ function closeChal(cid, broken, cb) { _.each(users, function(user){ _.each(user.tasks, function(task){ if (task.challenge && task.challenge.id == removed._id) { - _.mege(task.challenge, broken); + _.merge(task.challenge, broken); } }) parallel.push(function(cb3){ @@ -240,7 +240,9 @@ function closeChal(cid, broken, cb) { ], cb); } -// DELETE +/** + * Delete & close + */ api['delete'] = function(req, res){ closeChal(req.params.cid, {broken: 'CHALLENGE_DELETED'}, function(err){ if (err) return res.json(500, {err: err}); @@ -248,6 +250,9 @@ api['delete'] = function(req, res){ }) } +/** + * Select Winner & Close + */ api.selectWinner = function(req, res) { if (!req.query.uid) return res.json(401, {err: 'Must select a winner'}); var chal; diff --git a/src/routes/api.js b/src/routes/api.js index 8983da231a..52998a3ec1 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -89,6 +89,7 @@ router.post('/challenges', auth.auth, challenges.create) router.get('/challenges/:cid', auth.auth, challenges.get) router.post('/challenges/:cid', auth.auth, challenges.update) router['delete']('/challenges/:cid', auth.auth, challenges['delete']) +router.post('/challenges/:cid/close', auth.auth, challenges.selectWinner) router.post('/challenges/:cid/join', auth.auth, challenges.join) router.post('/challenges/:cid/leave', auth.auth, challenges.leave)