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
2019-07-17 19:20:21 +00:00
const LAST _ANNOUNCEMENT _TITLE = 'GUILD AND PARTIES ISSUE, FREE CAKE, AND SPLASHY PALS BUNDLE' ;
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" >
2018-08-30 18:56:36 +00:00
< div class = "media align-items-center" >
2018-09-11 20:38:12 +00:00
< div class = "mr-3 ${baileyClass}" > < / d i v >
2018-06-19 23:24:40 +00:00
< div class = "media-body" >
2018-09-11 20:38:12 +00:00
< h1 class = "align-self-center" > $ { res . t ( 'newStuff' ) } < / h 1 >
2019-07-17 19:20:21 +00:00
< h2 > 7 / 17 / 2019 - $ { LAST _ANNOUNCEMENT _TITLE } < / h 2 >
2018-08-30 18:56:36 +00:00
< / d i v >
< / d i v >
2018-09-11 20:38:12 +00:00
< hr / >
2019-07-17 19:20:21 +00:00
< h3 > Issue Affecting Guilds , Parties , and Quests , Plus Cake on Us ! < / h 3 >
< p > Hello Habiticans ! Our apologies regarding the outage affecting access to the Tavern , Guilds , and Parties that occurred yesterday . For those who may have had issues with their current Quest , we 've granted quest owners a new copy of their Quest scroll and four gems to purchase a Quest or item of your choice. If you have any concerns or if there are any lingering issues with your Guild, Party, or Quest, please contact us at <a href=' mailto : admin @ habitica . com ' > admin @ habitica . com < / a > a n d o u r s m a l l t e a m w i l l b e h a p p y t o f i x y o u u p a s s o o n a s p o s s i b l e ! < / p >
< p > Thanks for your understanding and support ! We always feel lucky to have such a wonderful community . : ) To thank you all for your patience , we ' ve given everyone delicious cake for their pets ! < / p >
< div class = "small mb-3" > by The Habitica Team < 3 < / d i v >
< div class = "promo_splashy_pals_bundle center-block" > < / d i v >
< h3 > Discounted Pet Quest Bundle : Splashy Pals ! < / h 3 >
< p > If you are looking to add some water - loving pets to your Habitica stable , you 're in luck! From now until July 31, you can purchase the Splashy Pals Pet Quest Bundle and receive the Seahorse, Turtle, and Whale 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 < a href = '/shops/quests' > Quest Shop < / a > t o d a y ! < / p >
< div class = "small" > by Lemoness and SabreCat < / d i v >
< div class = "small" > Art by McCoyly , krazjega , UncommonCriminal , zoebeagle , Kiwibot , JessicaChase , Scarabsi , JaizakArpaik < / d i v >
< div class = "small mb-3" > Writing by Calae , Ginger _Hanna , Lemoness < / 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' ,
2018-09-21 13:12:20 +00:00
middlewares : [ authWithHeaders ( ) ] ,
2018-01-31 10:55:39 +00:00
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 ;