Files
habitica/src/routes/api.coffee
T

50 lines
1.8 KiB
CoffeeScript

express = require 'express'
router = new express.Router()
api = require '../controllers/api'
###
---------- /api/v1 API ------------
Every url added to router is prefaced by /api/v1
See ./routes/coffee for routes
v1 API. Requires x-api-user (user id) and x-api-key (api key) headers, Test with:
$ cd node_modules/racer && npm install && cd ../..
$ mocha test/api.mocha.coffee
###
{auth, verifyTaskExists, cron} = api
router.get '/status', (req, res) -> res.json status: 'up'
# Auth
router.post '/register', api.registerUser
# Scoring
router.post '/user/task/:id/:direction', auth, cron, api.scoreTask
router.post '/user/tasks/:id/:direction', auth, cron, api.scoreTask
# Tasks
router.get '/user/tasks', auth, cron, api.getTasks
router.get '/user/task/:id', auth, cron, api.getTask
router.put '/user/task/:id', auth, cron, verifyTaskExists, api.updateTask
router.post '/user/tasks', auth, cron, api.updateTasks
router.delete '/user/task/:id', auth, cron, verifyTaskExists, api.deleteTask
router.post '/user/task', auth, cron, api.createTask
router.put '/user/task/:id/sort', auth, cron, verifyTaskExists, api.sortTask
router.post '/user/clear-completed', auth, cron, api.clearCompleted
# Items
router.post '/user/buy/:type', auth, cron, api.buy
# User
router.get '/user', auth, cron, api.getUser
router.post '/user/auth/local', api.loginLocal
router.post '/user/auth/facebook', api.loginFacebook
router.put '/user', auth, cron, api.updateUser
router.post '/user/revive', auth, cron, api.revive
router.post '/user/batch-update', auth, cron, api.batchUpdate
# Groups
router.get '/groups', auth, api.getGroups
module.exports = router