mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
* extract seasonal-shop config - use summer season items (to work on) * add suggested border to shopItems * refactor getOfficialPinnedItems (now includes the seasonal gear) * refactor shops.getSeasonalShop - add featured items to result - add the set to special equipment items * feat(content): Fall 2017 seasonal gear Also adds set keys for all prior seasonal gear. * show item limited time (buyModal & shopItem) * select seasonal fall sets * WIP(seasonal-shop): placeholder Fall 2017 items * fix lint * sprites * styling + fix purchase of seasonal spells * compile sprites * fixes: check isPinned with officialItems * enable purchase of seasonal items for testing * fix shop apis * add featuredItems to market * quest shop: add featuredItems to api * tiem travelers shop: add featuredItems to api * fix gear types filter * feat(content): Fall 2017 compleat * chore(sprites): compile * show opened shop state (npc+background) * add opened seasonal npc * current seasonal users class set = purchase by gold - lock other sets of the current season * hide event badge in seasonal shop - dot only for suggested items - cursor: pointer on shopItems * refresh rewards column list (seasonal gear won't refresh it on purchase) * fix duplicate seasonal gear -> remove special items from the old reward gear (which is used to reset the pinned gears) * every current season gear is purchased by gold - prevent buyModal on locked items * use the current event date range * list seasonal sets by event date * use custom method instead of updateStore to list the pinnable gear * change daterange to 10-31 * fix start quest modal from items - disable invite quest button if a quest is already active * toggle pin in buy-dialogs * check if the item is not undefined/null - renamed the watch function
146 lines
3.4 KiB
JavaScript
146 lines
3.4 KiB
JavaScript
import { authWithHeaders } from '../../middlewares/auth';
|
|
import { shops } from '../../../common/';
|
|
|
|
let api = {};
|
|
|
|
/**
|
|
* @apiIgnore
|
|
* @api {get} /api/v3/shops/market get the available items for the market
|
|
* @apiName GetMarketItems
|
|
* @apiGroup Shops
|
|
*
|
|
* @apiSuccess {Object} data List of available items
|
|
* @apiSuccess {string} message Success message
|
|
*/
|
|
api.getMarketItems = {
|
|
method: 'GET',
|
|
url: '/shops/market',
|
|
middlewares: [authWithHeaders()],
|
|
async handler (req, res) {
|
|
let user = res.locals.user;
|
|
|
|
let resObject = shops.getMarketShop(user, req.language);
|
|
|
|
res.respond(200, resObject);
|
|
},
|
|
};
|
|
|
|
/**
|
|
* @apiIgnore
|
|
* @api {get} /api/v3/shops/market-gear get the available gear for the market
|
|
* @apiName GetMarketGear
|
|
* @apiGroup Shops
|
|
*
|
|
* @apiSuccess {Object} data List of available gear
|
|
*/
|
|
api.getMarketGear = {
|
|
method: 'GET',
|
|
url: '/shops/market-gear',
|
|
middlewares: [authWithHeaders()],
|
|
async handler (req, res) {
|
|
let user = res.locals.user;
|
|
|
|
let resObject = {
|
|
categories: shops.getMarketGearCategories(user, req.language),
|
|
};
|
|
|
|
res.respond(200, resObject);
|
|
},
|
|
};
|
|
|
|
/**
|
|
* @apiIgnore
|
|
* @api {get} /api/v3/shops/quests get the available items for the quests shop
|
|
* @apiName GetQuestShopItems
|
|
* @apiGroup Shops
|
|
*
|
|
* @apiSuccess {Object} data List of available quests
|
|
* @apiSuccess {string} message Success message
|
|
*/
|
|
api.getQuestShopItems = {
|
|
method: 'GET',
|
|
url: '/shops/quests',
|
|
middlewares: [authWithHeaders()],
|
|
async handler (req, res) {
|
|
let user = res.locals.user;
|
|
|
|
let resObject = shops.getQuestShop(user, req.language);
|
|
|
|
res.respond(200, resObject);
|
|
},
|
|
};
|
|
|
|
/**
|
|
* @apiIgnore
|
|
* @api {get} /api/v3/shops/time-travelers get the available items for the time travelers shop
|
|
* @apiName GetTimeTravelersShopItems
|
|
* @apiGroup Shops
|
|
*
|
|
* @apiSuccess {Object} data List of available items
|
|
* @apiSuccess {string} message Success message
|
|
*/
|
|
api.getTimeTravelerShopItems = {
|
|
method: 'GET',
|
|
url: '/shops/time-travelers',
|
|
middlewares: [authWithHeaders()],
|
|
async handler (req, res) {
|
|
let user = res.locals.user;
|
|
|
|
let resObject = shops.getTimeTravelersShop(user, req.language);
|
|
|
|
res.respond(200, resObject);
|
|
},
|
|
};
|
|
|
|
/**
|
|
* @apiIgnore
|
|
* @api {get} /api/v3/shops/seasonal get the available items for the seasonal shop
|
|
* @apiName GetSeasonalShopItems
|
|
* @apiGroup Shops
|
|
*
|
|
* @apiSuccess {Object} data List of available items
|
|
* @apiSuccess {string} message Success message
|
|
*/
|
|
api.getSeasonalShopItems = {
|
|
method: 'GET',
|
|
url: '/shops/seasonal',
|
|
middlewares: [authWithHeaders()],
|
|
async handler (req, res) {
|
|
let user = res.locals.user;
|
|
|
|
let resObject = shops.getSeasonalShop(user, req.language);
|
|
|
|
res.respond(200, resObject);
|
|
},
|
|
};
|
|
|
|
/**
|
|
* @apiIgnore
|
|
* @api {get} /api/v3/shops/backgrounds get the available items for the backgrounds shop
|
|
* @apiName GetBackgroundsShopItems
|
|
* @apiGroup Shops
|
|
*
|
|
* @apiSuccess {Object} data List of available backgrounds
|
|
* @apiSuccess {string} message Success message
|
|
*/
|
|
api.getBackgroundShopItems = {
|
|
method: 'GET',
|
|
url: '/shops/backgrounds',
|
|
middlewares: [authWithHeaders()],
|
|
async handler (req, res) {
|
|
let user = res.locals.user;
|
|
|
|
let resObject = {
|
|
identifier: 'backgroundShop',
|
|
text: res.t('backgroundShop'),
|
|
notes: res.t('backgroundShopText'),
|
|
imageName: 'background_shop',
|
|
sets: shops.getBackgroundShopSets(user, req.language),
|
|
};
|
|
|
|
res.respond(200, resObject);
|
|
},
|
|
};
|
|
|
|
module.exports = api;
|