express = require 'express' router = new express.Router() util = require('util') _ = require 'lodash' algos = require 'habitrpg-shared/script/algos' helpers = require 'habitrpg-shared/script/helpers' validator = require 'derby-auth/node_modules/validator' check = validator.check sanitize = validator.sanitize misc = require '../app/misc' NO_TOKEN_OR_UID = err: "You must include a token and uid (user id) in your request" NO_USER_FOUND = err: "No user found." # ---------- /api/v1 API ------------ # Every url added beneath router is prefaced by /api/v2 ### API Status ### router.get '/status', (req, res) -> res.json status: 'up' ### beforeEach auth interceptor ### auth = (req, res, next) -> uid = req.headers['x-api-user'] token = req.headers['x-api-key'] return res.json 401, NO_TOKEN_OR_UID unless uid || token model = req.getModel() query = model.query('users').withIdAndToken(uid, token) query.fetch (err, user) -> return res.json err: err if err req.user = user req.userObj = user.get() return res.json 401, NO_USER_FOUND if !req.userObj || _.isEmpty(req.userObj) req._isServer = true next() ### POST new actions ### router.post '/', auth, (req, res) -> if _.isArray req.body console.log util.inspect req.body res.json 200, req.userObj module.exports = router