From c8bbfda776e8b40d21f3634e33201b435eedb211 Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Mon, 27 Aug 2012 22:25:52 -0400 Subject: [PATCH] basic setup for REST api - /:uid/up/:score? for now Conflicts: lib/server/index.js src/server/index.coffee --- lib/server/api.js | 19 +++++++++++++++++++ lib/server/index.js | 2 ++ src/server/api.coffee | 10 ++++++++++ src/server/index.coffee | 2 ++ 4 files changed, 33 insertions(+) create mode 100644 lib/server/api.js create mode 100644 src/server/api.coffee diff --git a/lib/server/api.js b/lib/server/api.js new file mode 100644 index 0000000000..832fb9d1da --- /dev/null +++ b/lib/server/api.js @@ -0,0 +1,19 @@ +// Generated by CoffeeScript 1.3.3 + +module.exports = function(expressApp) { + return expressApp.get('/:uid/up/:score?', function(req, res) { + var model, score; + score = parseInt(req.params.score) || 1; + console.log({ + score: score + }); + model = req.getModel(); + model.fetch("users." + req.params.uid, function(err, user) { + if (err || !user.get()) { + return; + } + return user.set('stats.exp', parseInt(user.get('stats.exp')) + score); + }); + return res.send(200); + }); +}; diff --git a/lib/server/index.js b/lib/server/index.js index 4b4e71dd00..3c4ef075f2 100644 --- a/lib/server/index.js +++ b/lib/server/index.js @@ -76,6 +76,8 @@ expressApp.use(express.favicon()).use(gzippo.staticGzip(publicPath, { }) })).use(store.modelMiddleware()).use(habitrpgMiddleware).use(app.router()).use(expressApp.router).use(serverError(root)); +require('./api')(expressApp); + expressApp.all('*', function(req) { throw "404: " + req.url; }); diff --git a/src/server/api.coffee b/src/server/api.coffee new file mode 100644 index 0000000000..fbf9247907 --- /dev/null +++ b/src/server/api.coffee @@ -0,0 +1,10 @@ +module.exports = (expressApp) -> + expressApp.get '/:uid/up/:score?', (req, res) -> + score = parseInt(req.params.score) || 1 + console.log {score:score} + model = req.getModel() + model.fetch "users.#{req.params.uid}", (err, user) -> + return if err || !user.get() + #TODO run this through scoring to account for weapons & armor, don't just +1 + user.set('stats.exp', parseInt(user.get('stats.exp'))+score) + res.send(200) diff --git a/src/server/index.coffee b/src/server/index.coffee index 3da7bb2a2f..2eacad2501 100644 --- a/src/server/index.coffee +++ b/src/server/index.coffee @@ -88,6 +88,8 @@ expressApp ## SERVER ONLY ROUTES ## +require('./api')(expressApp) + expressApp.all '*', (req) -> throw "404: #{req.url}" \ No newline at end of file