Merge branch 'api-v3' into shared-code-webhooks

This commit is contained in:
Victor Piousbox
2016-04-07 21:23:38 +00:00
17 changed files with 969 additions and 144 deletions

View File

@@ -885,4 +885,93 @@ api.userReleaseMounts = {
},
};
/*
* @api {post} /user/sell/:type/:key Sells user's items.
* @apiVersion 3.0.0
* @apiName UserSell
* @apiGroup User
*
* @apiSuccess {Object} data `stats items`
*/
api.userSell = {
method: 'POST',
middlewares: [authWithHeaders(), cron],
url: '/user/sell/:type/:key',
async handler (req, res) {
let user = res.locals.user;
let sellResponse = common.ops.sell(user, req);
await user.save();
res.respond(200, sellResponse);
},
};
/*
* @api {post} /user/unlock Unlocks items by purchase.
* @apiVersion 3.0.0
* @apiName UserUnlock
* @apiGroup User
*
* @apiSuccess {Object} data `purchased preferences items`
*/
api.userUnlock = {
method: 'POST',
middlewares: [authWithHeaders(), cron],
url: '/user/unlock',
async handler (req, res) {
let user = res.locals.user;
let unlockResponse = common.ops.unlock(user, req);
await user.save();
res.respond(200, unlockResponse);
},
};
/**
* @api {post} /user/revive Revives user from death.
* @apiVersion 3.0.0
* @apiName UserRevive
* @apiGroup User
*
* @apiSuccess {Object} data `user.items`
*/
api.userRevive = {
method: 'POST',
middlewares: [authWithHeaders(), cron],
url: '/user/revive',
async handler (req, res) {
let user = res.locals.user;
let reviveResponse = common.ops.revive(user, req, res.analytics);
await user.save();
res.respond(200, reviveResponse);
},
};
/*
* @api {post} /user/rebirth Resets a user.
* @apiVersion 3.0.0
* @apiName UserRebirth
* @apiGroup User
*
* @apiSuccess {Object} data `user`
*/
api.userRebirth = {
method: 'POST',
middlewares: [authWithHeaders(), cron],
url: '/user/rebirth',
async handler (req, res) {
let user = res.locals.user;
let query = {
userId: user._id,
type: {$in: ['daily', 'habit', 'todo']},
};
let tasks = await Tasks.Task.find(query).exec();
let rebirthResponse = common.ops.rebirth(user, tasks, req, res.analytics);
await user.save();
await Q.all(tasks.map(task => task.save()));
res.respond(200, rebirthResponse);
},
};
module.exports = api;