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 = 'PET QUEST BUNDLE AND SEAFOAM!'; 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')}

7/14/2020 - ${LAST_ANNOUNCEMENT_TITLE}


Discounted Pet Quest Bundle: Aquatic Amigos!

If you're looking to add some splashy pets to your Habitica stable, you're in luck! From now until July 31, you can purchase the Aquatic Amigos Pet Quest Bundle and receive the Axolotl, Cuttlefish, and Octopus 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 PainterProphet, Streak, James Danger, hazel, RiverMori, UncommonCriminal, Urse, RBrinks, TokenKnight, wolvenhalo, Lemoness, and SabreCat

Seafoam!

Throw some Seafoam at your friends and they will turn into a cheerful sea star until their next cron! You can buy the Seafoam in the Seasonal Shop for 15 Gold. Plus, if you get splashed by Seafoam, you'll receive the Aquatic Friends badge!

Don't want to be a sea star? Just buy some Sand from your Rewards column to reverse it.

Seafoam will be available in the Seasonal Shop until July 31st!

by Lemoness
`, }); }, }; /** * @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;