Refactor getUpcomingEvents()

This commit is contained in:
Amy 2021-08-19 00:18:33 -04:00
parent 7f64aadebc
commit cb3408990d
1 changed files with 26 additions and 31 deletions

View File

@ -70,37 +70,32 @@ export async function getUpcomingEvents(): Promise<Event[]> {
const nextYear = currentTerm < 2 ? currentYear : currentYear + 1;
const nextTerm = (currentTerm + 1) % 3;
let currentEvents: Event[] = [];
try {
currentEvents = await Promise.all(
(
await getEventsByTerm(currentYear.toString(), TERMS[currentTerm])
).map(
async (slug) =>
await getEventBySlug(currentYear.toString(), TERMS[currentTerm], slug)
)
);
} catch (error) {
currentEvents = [];
}
let nextEvents: Event[] = [];
try {
nextEvents = await Promise.all(
(
await getEventsByTerm(nextYear.toString(), TERMS[nextTerm])
).map(
async (slug) =>
await getEventBySlug(nextYear.toString(), TERMS[nextTerm], slug)
)
);
} catch (error) {
nextEvents = [];
}
return currentEvents
.concat(nextEvents)
.filter((ev) => {
return new Date(ev.metadata.date).getTime() > Date.now();
})
const events: Event[] = (
await Promise.all(
[
{ year: currentYear, term: currentTerm },
{ year: nextYear, term: nextTerm },
].map(async ({ year, term }) => {
try {
const eventsInTerm = await getEventsByTerm(
year.toString(),
TERMS[term]
);
return await Promise.all(
eventsInTerm.map(
async (slug) =>
await getEventBySlug(year.toString(), TERMS[term], slug)
)
);
} catch (error) {
return [];
}
})
)
).flat();
return events
.filter((ev) => new Date(ev.metadata.date).getTime() > Date.now())
.sort((a, b) => {
return (
new Date(a.metadata.date).getTime() -