192 lines
7.6 KiB
HTML
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 …</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">¶</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 && npm install && 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">¶</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">¶</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">¶</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">¶</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>
|