From e554309822f9e5f9dff2a0ea12583b7d12deaeb1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sun, 13 Sep 2015 14:57:18 -0500 Subject: [PATCH] Add route to add a hourglass --- test/server_side/controllers/user.test.js | 31 +++++++++++++++++++++++ website/src/controllers/user.js | 19 ++++++++++++++ website/src/routes/apiv2.coffee | 4 +++ 3 files changed, 54 insertions(+) diff --git a/test/server_side/controllers/user.test.js b/test/server_side/controllers/user.test.js index 47a360fb98..aac7bf69b7 100644 --- a/test/server_side/controllers/user.test.js +++ b/test/server_side/controllers/user.test.js @@ -583,4 +583,35 @@ describe('User Controller', function() { expect(res.send).to.be.calledWith(204); }); }); + + describe('#addHourglass', function() { + var req, res, user; + + beforeEach(function() { + user = { + _id: 'user-id', + purchased: { plan: { consecutive: { trinkets: 3 } } }, + save: sinon.stub().yields() + }; + req = { }; + res = { + locals: { user: user }, + send: sinon.spy() + }; + }); + + it('adds an hourglass to user', function() { + userController.addHourglass(req, res); + + expect(user.purchased.plan.consecutive.trinkets).to.eql(4); + expect(user.save).to.be.calledOnce; + }); + + it('sends back 204', function() { + userController.addHourglass(req, res); + + expect(res.send).to.be.calledOnce; + expect(res.send).to.be.calledWith(204); + }); + }); }); diff --git a/website/src/controllers/user.js b/website/src/controllers/user.js index f961ee5918..80a8321191 100644 --- a/website/src/controllers/user.js +++ b/website/src/controllers/user.js @@ -412,6 +412,25 @@ api.addTenGems = function(req, res, next) { }) } +/* + ------------------------------------------------------------------------ + Hourglass + ------------------------------------------------------------------------ + */ + +// api.unlock // see Shared.ops + +api.addHourglass = function(req, res, next) { + var user = res.locals.user; + + user.purchased.plan.consecutive.trinkets += 1; + + user.save(function(err){ + if (err) return next(err); + res.send(204); + }) +} + /* ------------------------------------------------------------------------ Tags diff --git a/website/src/routes/apiv2.coffee b/website/src/routes/apiv2.coffee index 396747fcf4..db26ac57a7 100644 --- a/website/src/routes/apiv2.coffee +++ b/website/src/routes/apiv2.coffee @@ -783,6 +783,10 @@ module.exports = (swagger, v2) -> spec: method:'POST' action: user.addTenGems + api["/user/addHourglass"] = + spec: method:'POST' + action: user.addHourglass + _.each api, (route, path) -> ## Spec format is: # spec: