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-05-10 18:42:44 +00:00
const LAST _ANNOUNCEMENT _TITLE = 'USE CASE SPOTLIGHT AND GUILD SPOTLIGHT ON MENTAL HEALTH AND WELLNESS' ;
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-05-10 18:42:44 +00:00
< div class = "media" >
< div class = "align-self-center mr-3 ${baileyClass}" > < / d i v >
2018-02-02 00:31:38 +00:00
< div class = "media-body" >
2018-05-10 18:42:44 +00:00
< h1 class = "align-self-center" > $ { res . t ( 'newStuff' ) } < / h 1 >
2018-04-11 01:32:49 +00:00
< / d i v >
2018-05-01 20:55:16 +00:00
< / d i v >
2018-05-10 18:42:44 +00:00
< h2 > 5 / 10 / 2018 - $ { LAST _ANNOUNCEMENT _TITLE } < / h 2 >
< hr / >
< div class = "media" >
2018-05-01 20:55:16 +00:00
< div class = "media-body" >
2018-05-10 18:42:44 +00:00
< p > In honor of Mental Health Awareness Month , we 've got new posts on the blog all about ways to explore better mental health and wellness through Habitica! First, there' s a < a href = 'https://habitica.wordpress.com/2018/05/10/caring-for-the-mind-guilds-for-mental-health-and-wellness/' target = '_blank' > Guild Spotlight < /a> that highlights the Guilds that can help you as you explore the path to better mental health. We've also posted a <a href='https:/ / habitica . wordpress . com / 2018 / 05 / 10 / use - case - spotlight - mental - health - and - wellness / ' target=' _blank '>Use Case Spotlight</a> featuring a number of great suggestions for using Habitica' s task system to manage mental health and wellness ! These suggestions were submitted by Habiticans in the < a href = '/groups/guild/1d3a10bf-60aa-4806-a38b-82d1084a59e6' target = '_blank' > Use Case Spotlights Guild < / a > . < / p >
2018-05-01 20:55:16 +00:00
< / d i v >
2018-05-10 18:42:44 +00:00
< div class = "scene_meditation" > < / d i v >
2018-04-11 01:32:49 +00:00
< / d i v >
2018-05-10 18:42:44 +00:00
< p > Plus , we ' re collecting user submissions for the next Use Case Spotlight ! How do you use Habitica to manage parenting and / or family life ? We ’ ll be featuring player - submitted examples in Use Case Spotlights on the Habitica Blog next month , so post your suggestions in the Use Case Spotlight Guild now . We look forward to learning more about how you use Habitica to improve your life and get things done ! < / p >
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-04-30 15:36:41 +00:00
middlewares : [ authWithHeaders ( {
userFieldsToExclude : [ 'inbox' ] ,
} ) ] ,
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 ;