51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
exports.loadRecentAndUpcomingEvents = async (req, res, next) => {
|
|
const {team_id, event_id} = req.params
|
|
const page_size = req.query.page_size ? Number(req.query.page_size) : 4
|
|
var subject_date
|
|
if (event_id) {
|
|
const event = await teamsnap.loadEvents({id: event_id}).pop()
|
|
const new_date = new Date(event.startDate.getTime()+10000);
|
|
subject_date = event.startDate
|
|
}
|
|
else {
|
|
subject_date = new Date()
|
|
}
|
|
req.promises.push(
|
|
teamsnap.bulkLoad({
|
|
teamId: team_id,
|
|
types: ["event", "availabilitySummary"],
|
|
scopeTo: "event",
|
|
event__startedAfter: new Date(subject_date.getTime()+10000),
|
|
event__pageSize: page_size
|
|
})
|
|
.then(items => tsUtils.groupTeamsnapItems(items))
|
|
.then((items)=>{
|
|
req.upcoming_events=items.events ? items.events : [];
|
|
const availabilitySummaries=items.availabilitySummaries;
|
|
req.upcoming_events.forEach((event) => {
|
|
event.link('availabilitySummary', availabilitySummaries.find(a=>a.eventId==event.id))
|
|
})
|
|
}
|
|
).fail(utils.teamsnapFailure)
|
|
)
|
|
req.promises.push(
|
|
teamsnap.bulkLoad({
|
|
teamId: team_id,
|
|
types: ["event", "availabilitySummary"],
|
|
scopeTo: "event",
|
|
event__startedBefore: new Date(subject_date.getTime()-10000),
|
|
event__pageSize: page_size,
|
|
event__sortStartDate: "desc"
|
|
})
|
|
.then(items => tsUtils.groupTeamsnapItems(items))
|
|
.then((items)=>{
|
|
req.recent_events=items.events || [];
|
|
const availabilitySummaries=items.availabilitySummaries;
|
|
req.recent_events.forEach((event) => {
|
|
event.link('availabilitySummary', availabilitySummaries.find(a=>a.eventId==event.id))
|
|
})
|
|
}
|
|
).fail(utils.teamsnapFailure)
|
|
)
|
|
next();
|
|
}
|