import { authWithHeaders } from '../../middlewares/auth'; let api = {}; // @TODO export this const, cannot export it from here because only routes are exported from controllers const LAST_ANNOUNCEMENT_TITLE = 'NEW MAGIC HATCHING POTION QUEST! AND SOMETHING SPECIAL ON THE WAY...'; 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')}

8/13/2019 - ${LAST_ANNOUNCEMENT_TITLE}


Something Special is on the Way!

Have you been looking to add more Habitican magic to your IRL world? Something exciting is coming to help you do just that! Keep your eyes peeled for a special announcement from Bailey soon!

by the Habitica Team

New Magic Hatching Potion Quest!

Where there's Bronze, there must be Silver... right? Get the latest Magic Hatching Potion quest, "The Silver Solution," and collect Silver Ingots and Runes to earn Silver Magic Hatching Potions by completing your real-life tasks!

by Beffymaroo, Edge, gawrone, QuartzFox, starsystemic, WillowTheWitty, 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; user.flags.newStuff = false; const existingNotificationIndex = user.notifications.findIndex(n => { return 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, {}); }, }; module.exports = api;