Files
habitica/website/server/libs/worldState.js
SabreCat 391a9bd91b feat(promo): G1G1 2021
Also refactors a number of places on web client to start using event 
list from world state instead of singular currentEvent
2021-12-15 16:20:43 -06:00

54 lines
1.3 KiB
JavaScript

import filter from 'lodash/filter';
import moment from 'moment';
import { // eslint-disable-line import/no-cycle
model as Group,
TAVERN_ID as tavernId,
} from '../models/group';
import common from '../../common';
export async function getWorldBoss () {
const tavern = await Group
.findById(tavernId)
.select('quest.progress quest.key quest.active quest.extra')
.exec();
if (tavern && tavern.quest && tavern.quest.active) {
return tavern.quest;
}
return {};
}
export function getCurrentEvent () {
const currEvtKey = Object.keys(common.content.events).find(evtKey => {
const event = common.content.events[evtKey];
const now = moment();
return now.isBetween(event.start, event.end); // && Boolean(event.npcImageSuffix);
});
if (!currEvtKey) return null;
return {
event: currEvtKey,
...common.content.events[currEvtKey],
};
}
export function getCurrentEventList () {
const currentEventKeys = filter(Object.keys(common.content.events), eventKey => {
const eventData = common.content.events[eventKey];
return moment().isBetween(eventData.start, eventData.end);
});
const currentEventList = [];
currentEventKeys.forEach(key => {
currentEventList.push({
event: key,
...common.content.events[key],
});
});
return currentEventList;
}