Files
habitica/documentation/docs/api.html
T
2013-09-26 18:10:28 -04:00

192 lines
7.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>api.js</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet" media="all" href="docco.css" />
</head>
<body>
<div id="container">
<div id="background"></div>
<ul id="jump_to">
<li>
<a class="large" href="javascript:void(0);">Jump To &hellip;</a>
<a class="small" href="javascript:void(0);">+</a>
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="api.html">
api.js
</a>
<a class="source" href="auth.html">
auth.js
</a>
<a class="source" href="pages.html">
pages.js
</a>
</div>
</li>
</ul>
<ul class="sections">
<li id="title">
<div class="annotation">
<h1>api.js</h1>
</div>
</li>
<li id="section-1">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">&#182;</a>
</div>
</div>
<div class="content"><div class='highlight'><pre><span class="keyword">var</span> express = require(<span class="string">'express'</span>);
<span class="keyword">var</span> router = <span class="keyword">new</span> express.Router();
<span class="keyword">var</span> user = require(<span class="string">'../controllers/user'</span>);
<span class="keyword">var</span> groups = require(<span class="string">'../controllers/groups'</span>);
<span class="keyword">var</span> auth = require(<span class="string">'../controllers/auth'</span>);
<span class="comment">/*
---------- /api/v1 API ------------
Every url added to router is prefaced by /api/v1
See ./routes/coffee for routes
v1 user. Requires x-api-user (user id) and x-api-key (api key) headers, Test with:
$ cd node_modules/racer &amp;&amp; npm install &amp;&amp; cd ../..
$ mocha test/user.mocha.coffee
*/</span>
<span class="keyword">var</span> verifyTaskExists = user.verifyTaskExists
<span class="keyword">var</span> cron = user.cron;
router.get(<span class="string">'/status'</span>, <span class="keyword">function</span>(req, res) {
<span class="keyword">return</span> res.json({
status: <span class="string">'up'</span>
});
});
<span class="comment">/* Scoring*/</span>
router.post(<span class="string">'/user/task/:id/:direction'</span>, auth.auth, cron, user.scoreTask);
router.post(<span class="string">'/user/tasks/:id/:direction'</span>, auth.auth, cron, user.scoreTask);
<span class="comment">/* Tasks*/</span>
router.get(<span class="string">'/user/tasks'</span>, auth.auth, cron, user.getTasks);
router.get(<span class="string">'/user/task/:id'</span>, auth.auth, cron, user.getTask);
router.put(<span class="string">'/user/task/:id'</span>, auth.auth, cron, verifyTaskExists, user.updateTask);
router.post(<span class="string">'/user/tasks'</span>, auth.auth, cron, user.updateTasks);
router[<span class="string">"delete"</span>](<span class="string">'/user/task/:id'</span>, auth.auth, cron, verifyTaskExists, user.deleteTask);
router.post(<span class="string">'/user/task'</span>, auth.auth, cron, user.createTask);
router.put(<span class="string">'/user/task/:id/sort'</span>, auth.auth, cron, verifyTaskExists, user.sortTask);
router.post(<span class="string">'/user/clear-completed'</span>, auth.auth, cron, user.clearCompleted);
<span class="comment">/* Items*/</span>
router.post(<span class="string">'/user/buy/:type'</span>, auth.auth, cron, user.buy);
<span class="comment">/* User*/</span>
router.get(<span class="string">'/user'</span>, auth.auth, cron, user.getUser);
router.put(<span class="string">'/user'</span>, auth.auth, cron, user.updateUser);
router.post(<span class="string">'/user/revive'</span>, auth.auth, cron, user.revive);
router.post(<span class="string">'/user/batch-update'</span>, auth.auth, cron, user.batchUpdate);
router.post(<span class="string">'/user/reroll'</span>, auth.auth, cron, user.reroll);
router.post(<span class="string">'/user/buy-gems'</span>, auth.auth, user.buyGems);
router.post(<span class="string">'/user/reset'</span>, auth.auth, user.reset);
router[<span class="string">'delete'</span>](<span class="string">'/user'</span>, auth.auth, user[<span class="string">'delete'</span>]);
<span class="comment">/* Tags */</span>
router[<span class="string">'delete'</span>](<span class="string">'/user/tags/:tid'</span>, auth.auth, user.deleteTag);
<span class="comment">/* Groups*/</span>
router.get(<span class="string">'/groups'</span>, auth.auth, groups.getGroups);
router.post(<span class="string">'/groups'</span>, auth.auth, groups.createGroup);
router.get(<span class="string">'/groups/:gid'</span>, auth.auth, groups.getGroup);
router.post(<span class="string">'/groups/:gid'</span>, auth.auth, groups.attachGroup, groups.updateGroup);</pre></div></div>
</li>
<li id="section-2">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-2">&#182;</a>
</div>
<p>DELETE /groups/:gid</p>
</div>
<div class="content"><div class='highlight'><pre>router.post(<span class="string">'/groups/:gid/join'</span>, auth.auth, groups.attachGroup, groups.join);
router.post(<span class="string">'/groups/:gid/leave'</span>, auth.auth, groups.attachGroup, groups.leave);
router.post(<span class="string">'/groups/:gid/invite'</span>, auth.auth, groups.attachGroup, groups.invite);</pre></div></div>
</li>
<li id="section-3">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-3">&#182;</a>
</div>
<p>GET /groups/:gid/chat</p>
</div>
<div class="content"><div class='highlight'><pre>router.post(<span class="string">'/groups/:gid/chat'</span>, auth.auth, groups.attachGroup, groups.postChat);
router[<span class="string">"delete"</span>](<span class="string">'/groups/:gid/chat/:messageId'</span>, auth.auth, groups.attachGroup, groups.deleteChatMessage);</pre></div></div>
</li>
<li id="section-4">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-4">&#182;</a>
</div>
<p>PUT /groups/:gid/chat/:messageId</p>
</div>
<div class="content"><div class='highlight'><pre><span class="comment">/* Members */</span>
router.get(<span class="string">'/members/:uid'</span>, groups.getMember);</pre></div></div>
</li>
<li id="section-5">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-5">&#182;</a>
</div>
<p>Market</p>
</div>
<div class="content"><div class='highlight'><pre>router.post(<span class="string">'/market/buy'</span>, auth.auth, user.marketBuy);
module.exports = router;</pre></div></div>
</li>
</ul>
</div>
</body>
</html>