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 = 'NEW DINOSAUR PET QUEST BUNDLE AND WIKI SPOTLIGHT'; 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')}

11/14/2019 - ${LAST_ANNOUNCEMENT_TITLE}


New Pet Quest Bundle: Delightful Dinos

If you are looking to add some dinosaur pets to your Habitica stable, life, uh, finds a way! From now until November 30, you can purchase the Delightful Dinos Pet Quest Bundle and receive the Pterodactyl, Triceratops, and T-Rex (The Dinosaur Unearthed) quests, all for only 7 Gems! That's a discount of 5 Gems from the price of purchasing them separately. Check it out in the Quest Shop today!

by SabreCat and Beffymaroo
Art by Baconsaur, Eevachu, UncommonCriminal, Kiwibot, McCoyly, plumilla, Seraphina, PainterProphet, Stefalupagus, Katy133, Edge, Willow The Witty, Lilith of Alfheim, Procyon, GeraldThePixel, and Archeia
Writing by Lemoness, Daniel the Bard, Lilith of Alfheim, and Ali Stewart

Blog Post: Places in Habitica

This month's featured Wiki article is about Places in Habitica! We hope that it will help you as you gamify your tasks. Be sure to check it out, and let us know what you think by reaching out on Twitter, Tumblr, and Facebook.

by shanaqui and the Wiki Wizards
`, }); }, }; /** * @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;