2018-01-31 10:55:39 +00:00
import { authWithHeaders } from '../../middlewares/auth' ;
let api = { } ;
// @TODO export this const, cannot export it from here because only routes are exported from controllers
2018-02-02 00:31:38 +00:00
const LAST _ANNOUNCEMENT _TITLE = 'NEW BACKGROUNDS AND ARMOIRE ITEMS, OFFICIAL CHALLENGES, AND FIXES' ;
2018-01-31 10:55:39 +00:00
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 : `
< div class = "bailey" >
< div class = "media" >
2018-02-02 00:31:38 +00:00
< div class = "media-body" >
< div class = "media" >
< div class = "align-self-center mr-3 ${baileyClass}" > < / d i v >
< div class = "media-body" >
< h1 class = "align-self-center" > $ { res . t ( 'newStuff' ) } < / h 1 >
< / d i v >
2018-01-31 10:55:39 +00:00
< / d i v >
2018-02-02 00:31:38 +00:00
< h2 > 2 / 1 / 2018 - $ { LAST _ANNOUNCEMENT _TITLE } < / h 2 >
< hr / >
< h3 > February Backgrounds and Armoire Items ! < / h 3 >
< p > We ’ ve added three new backgrounds to the Background Shop ! Now your avatar can dally in a Rose Garden , explore a Magical Museum , and play in Chessboard Land . Check them out under the User Icon > Backgrounds ! < / p >
< p > Plus , there ’ s new gold - purchasable equipment in the Enchanted Armoire , including the King of Diamonds Set . Better work hard on your real - life tasks to earn all the pieces ! Enjoy : ) < / p >
< div class = "small mb-3" > by AnnDeLune , weeWitch , Katy133 , RandomGryffindor , and Chimera Liani < / d i v >
< / d i v >
< div class = "promo_armoire_backgrounds_201802 m1-3 mb-3" > < / d i v >
2018-01-31 10:55:39 +00:00
< / d i v >
< div class = "media" >
2018-02-02 00:31:38 +00:00
< div class = "scene_yesterdailies_repeatables mr-3" > < / d i v >
2018-01-31 10:55:39 +00:00
< div class = "media-body" >
2018-02-02 00:31:38 +00:00
< h3 > February 2018 Resolution Success Challenge and Take This Challenge < / h 3 >
< p > The Habitica team has launched a special official Challenge series hosted in the < a href = "/groups/guild/6e6a8bd3-9f5f-4351-9188-9f11fcd80a99" > Official New Year 's Resolution Guild</a>. 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 , < a href = "/challenges/2836b401-a11d-4fe9-a75f-77c1e9d31ba4" > Hone your Weapons < / a > , w e ' r e f o c u s i n g o n m a k i n g s u r e t h e g o a l s y o u ' v e s e t t h i s y e a r a r e s p e c i f i c a n d a c h i e v a b l e ! I t h a s a 1 5 G e m p r i z e , w h i c h w i l l b e a w a r d e d t o f i v e l u c k y w i n n e r s o n M a r c h 1 s t . < / p >
2018-01-31 10:55:39 +00:00
< / d i v >
< / d i v >
2018-02-02 00:31:38 +00:00
< p > Congratulations to the winners of January ' s Challenge : upsidedawn , Cristalias , feistyturtle , Yachiie , and Stijn Verwijmeren ! < / p >
< div class = "media" >
< div class = "media-body" >
< p > The next Take This Challenge has also launched , < a href = "/challenges/75a06666-b0c0-4fec-b612-ef5bebe74bfb" > Cast of Characters ! < / a > , w i t h a f o c u s o n i m a g i n i n g o n e ' s p o s i t i v e a n d n e g a t i v e f e e l i n g s a s c h a r a c t e r s i n a s t o r y . B e s u r e t o c h e c k i t o u t t o e a r n a d d i t i o n a l p i e c e s o f t h e T a k e T h i s a r m o r s e t ! < / p >
< p > < a href = "http://www.takethis.org" target = "_blank" > Take This < / a > i s a n o n p r o f i t t h a t s e e k s t o i n f o r m t h e g a m e r c o m m u n i t y a b o u t m e n t a l h e a l t h i s s u e s , t o p r o v i d e e d u c a t i o n a b o u t m e n t a l d i s o r d e r s a n d m e n t a l i l l n e s s p r e v e n t i o n , a n d t o r e d u c e t h e s t i g m a o f m e n t a l i l l n e s s . < / p >
< / d i v >
< div class = "promo_take_this ml-3" > < / d i v >
< / d i v >
< p > Congratulations to the winners of the last Take This Challenge , 'Check Your HP!' : grand prize winner PoNyasha , and runners - up - ᏲᎾ - , Kat Thompson , 𝒮𝔲𝔠𝔥𝔢𝔯𝔪𝔞𝔲𝔰 🐭 , Cal _Fizz , and redfeather ! Plus , all participants in that Challenge have received a piece of the < a href = "http://habitica.wikia.com/wiki/Event_Item_Sequences#Take_This_Armor_Set" target = "_blank" > Take This item set < / a > i f t h e y h a d n ' t c o m p l e t e d t h e s e t a l r e a d y . A r m o r p i e c e s a r e l o c a t e d i n y o u r R e w a r d s c o l u m n . E n j o y ! < / p >
< div class = "small mb-3" > by Doctor B , the Take This team , Lemoness , Beffymaroo , and SabreCat < / d i v >
< h3 > Updates and Fixes < / h 3 >
< p > We ' ve made a number of fixes , most prominently a bunch of fixes for notifications so that they direct you to the correct place when clicked and disappear after that ! < / p >
< p > We 've also fixed the issue where some Habiticans were seeing old announcements from Bailey rather than the latest ones, and we' ve added a way for Group Plan managers to note when an assigned task needs further work from the assignee . < / p >
< p > We hope these fixes improve your Habitica experience ! < / p >
< div class = "small mb-3" > by Paglias , TheHollidayInn , and Apollo < / d i v >
2018-01-31 10:55:39 +00:00
< / d i v >
` ,
} ) ;
} ,
} ;
/ * *
* @ 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 => {
2018-02-04 12:28:05 +00:00
return n && n . type === 'NEW_STUFF' ;
2018-01-31 10:55:39 +00:00
} ) ;
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 , { } ) ;
} ,
} ;
2018-02-02 00:31:38 +00:00
module . exports = api ;