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 = 'AUGUST 2018 RESOLUTION SUCCESS CHALLENGE AND NEW TAKE THIS CHALLENGE'; 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')}

8/1/2018 - ${LAST_ANNOUNCEMENT_TITLE}


The Habitica team has launched a special official Challenge series hosted in the Official New Year's Resolution Guild. These Challenges are designed to help you build and maintain goals that are destined for success and then stick with them as the year progresses. For this month's Challenge, Count Your Treasure, we're focusing on the importance of rewards! It has a 15 Gem prize, which will be awarded to five lucky winners on September 3rd.

Congratulations to the winners of July's Challenge: Krilae, catliyon, cemelee, Rafael Moura, and Eduardo The Invincible!

The next Take This Challenge has also launched, "Notice Me, Senpai!", with a focus on seeking help when we're struggling. Be sure to check it out to earn additional pieces of the Take This armor set!

Long-time Take This Challenge participants may notice that recent Challenges have been reprises of early ones. Great news, though: next month, we'll begin debuting brand new mental health and self-care Challenges from the Take This team! Stay tuned!

Take This is a nonprofit that seeks to inform the gamer community about mental health issues, to provide education about mental disorders and mental illness prevention, and to reduce the stigma of mental illness.

Congratulations to the winners of the last Take This Challenge, "Multi-Player Co-Op Exercise!": grand prize winner Lex Talion, and runners-up wcampospro, KorJik_3, FortemFiducia, DanDee, and Xander Scott! Plus, all participants in that Challenge have received a piece of the Take This item set if they hadn't completed it already. It is located in your Rewards column. Enjoy!

by Doctor B, the Take This team, Lemoness, 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({ 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;