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 FEBRUARY 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: `

${res.t('newStuff')}

2/27/2020 - ${LAST_ANNOUNCEMENT_TITLE}


Last Chance for Stylish Sweetheart Set

Reminder: time is running out to receive the Stylish Sweetheart Set when you subscribe! Subscribing also lets you buy Gems with Gold, nets you a special Royal Purple Jackalope Pet, and more!

Thanks so much for your support! You help keep Habitica running.

by Beffymaroo

Last Chance for Rose Quartz and Cupid Hatching Potions

Rose Quartz and Cupid Hatching Potions will also go away at the end of the month! If they come back, it won't be until next year at the earliest, so don't delay!

by Vampitch, Willow the Witty, and SabreCat
`, }); }, }; /** * @api {post} /api/v3/news/tell-me-later Get latest Bailey announcement in a second moment * @apiName TellMeLaterNews * @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;