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 = 'SPRING FLING BEGINS! LIMITED EDITION EQUIPMENT, SEASONAL SHOP, AND EGG QUEST!'; 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')}

3/19/2019 - ${LAST_ANNOUNCEMENT_TITLE}


Limited Edition Class Outfits

From now until April 30th, limited edition outfits are available in the Rewards column! Depending on your class, you can be a Cloud Rogue, Robin Healer, Amber Mage, or Orchid Warrior. You'd better get productive to earn enough Gold before your time runs out...

by Eslyn, Aspiring Advocate, OuttaMyMind, Lt. Cabel, Beffymaroo and SabreCat

Seasonal Shop Opens

The Seasonal Shop has opened! It's stocking springtime Seasonal Edition goodies at the moment, including past spring outfits. Everything there will be available to purchase during the Spring Fling event each year, but it's only open until April 30th, so be sure to stock up now, or you'll have to wait a year to buy these items again!

by Vikte, Lalaitha, DialFForFunky, Gerald the Pixel, Scarvia, Awesome kitty, usnbfs, Lemoness, Balduranne, PainterProphet, Beffymaroo and SabreCat

Egg Quest Available

The Egg Quest is also available again in the Seasonal Shop! Strange eggs are appearing all over Habitica. Can you collect them all to earn some colorful Egg pets and mounts?

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