import { authWithHeaders } from '../../middlewares/auth';
const api = {};
// @TODO export this const, cannot export it from here because only routes are exported from
// controllers
const LAST_ANNOUNCEMENT_TITLE = 'LAST CHANCE FOR MAY ITEMS';
const worldDmg = { // @TODO
bailey: false,
};
/**
* @api {get} /api/v3/news Get latest Bailey announcement
* @apiName GetNews
* @apiGroup News
*
*
* @apiSuccess {Object} html Latest Bailey html
*
*/
api.getNews = {
method: 'GET',
url: '/news',
async handler (req, res) {
const baileyClass = worldDmg.bailey ? 'npc_bailey_broken' : 'npc_bailey';
res.status(200).send({
html: `
Last Chance for Wondrous Wyvern Set
Reminder: you only have until May 31 to receive the Wondrous Wyvern Set when you sign up for a new Habitica subscription!
Subscribing also gives you lots of great perks, like the ability to buy Gems with Gold.
The longer your subscription, the more Gems you can get!
Thanks so much for your support! You help keep Habitica running.
by Beffymaroo
Last Chance for Fairy and Sunshine Glow Hatching Potions
Reminder: Fairy and Sunshine Glow Hatching Potions leave the
Market on May 31. If they come back, it won't be until next year at the earliest, so
don't delay!
by OuttaMyMind, Lt.Cabel, Eslyn, Edge, and SabreCat
Last Chance for Jungle Buddies Pet Quest Bundle
Don't forget to check out the discounted Jungle Buddies Pet Quest Bundle, featuring the
Monkey, Sloth, and Treeling quests all for seven Gems! Be sure to snag it before it makes
like a tree and leaves the Quest Shop on May 31!
by SabreCat
Writing by PixelHunter, Emily Austin, Flutter Bee, and Felipe NA
Art by JaizakAripaik, Drevian, McCoyly, awakebyjava, PainterProphet, Kiwibot,
greenpencil, fuzzytrees, PainterProphet, aurakami, yamato, leephon, Misceo, and
Oneironaut
`,
});
},
};
/**
* @api {post} /api/v3/news/tell-me-later Allow latest Bailey announcement to be read later
* @apiName TellMeLaterNews
* @apiDescription Add a notification to allow viewing of the latest "New Stuff by Bailey" message.
* Prevent this specific Bailey message from appearing automatically.
* @apiGroup News
*
*
* @apiSuccess {Object} data An empty Object
*
*/
api.tellMeLaterNews = {
method: 'POST',
middlewares: [authWithHeaders()],
url: '/news/tell-me-later',
async handler (req, res) {
const { user } = res.locals;
user.flags.newStuff = false;
const existingNotificationIndex = user.notifications.findIndex(n => n && n.type === 'NEW_STUFF');
if (existingNotificationIndex !== -1) user.notifications.splice(existingNotificationIndex, 1);
user.addNotification('NEW_STUFF', { title: LAST_ANNOUNCEMENT_TITLE }, true); // seen by default
await user.save();
res.respond(200, {});
},
};
export default api;