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 = 'SQUIRREL PET QUEST AND APRIL FOOLS CHALLENGE WINNERS'; 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')}

4/10/2018 - ${LAST_ANNOUNCEMENT_TITLE}


New Pet Quest: The Sneaky Squirrel

Squirrels are loose, jamming up Habitican routines with stray acorns! Find and confront the hoarder in the latest pet quest, The Sneaky Squirrel, and earn some bushy-tailed squirrel pets by completing your real-life tasks.

Art by randomdaisy, Shtut, virginiamoon, confusedcicada, and WillowTheWitty
Writing by Cantras and SabreCat

April Fool's Challenge Winners and Blog Post!

The winners of the April Fool's Social Media Challenge have been selected! Congratulations to: Al Lith, Frar of the Lonely Mountain, Garwinna, Meakuel, and Koliz!

Thank you to everyone who shared their awesome pics with their tiny pets and mounts! You can see a fun recap of the shenanigans on our blog. Stay tuned to see what wacky antics the Fool gets up to next year!

by Beffymaroo 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;