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