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 = 'JUNE SUBSCRIBER ITEMS AND HABIT HISTORY CHANGES'; 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')}

6/21/2018 - ${LAST_ANNOUNCEMENT_TITLE}


June Subscriber Items Revealed!

The June Subscriber Item Set has been revealed: the Alluring Anglerfish Item Set! You only have until June 30 to receive the item set when you subscribe. If you're already an active subscriber, reload the site and then head to Inventory > Items to claim your gear!

Subscribers also receive the ability to buy Gems for Gold -- the longer you subscribe, the more Gems you can buy per month! There are other perks as well, such as longer access to uncompressed data and a cute Jackalope pet. Best of all, subscriptions let us keep Habitica running. Thank you very much for your support -- it means a lot to us.

by Beffymaroo

Habit History Changes

In a few days we're making a change to the way Habit history is stored in order to improve overall site performance and reduce errors and bugs for folks with lots of task activity.

If you view Habit history in a tool such as the Data Display Tool you will no longer be able to see timestamps showing when you clicked a Habit. You will still see how many times you clicked it in a given day.

So, if you are using your Habits for any tasks where the timestamps are critical, just a heads-up and a note to save your data elsewhere as timestamp data will be lost when the change goes live!

If you have developed a third-party tool or extension for Habitica, please check out these notes on GitHub so that you can update if needed.

Thanks for your understanding as we work to make Habitica better. <3

by Paglias
`, }); }, }; /** * @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({ userFieldsToExclude: ['inbox'], })], 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;