From 0bfd9d83c159b748ef34a47df1b4c3dfe7c9c3b1 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 9 Aug 2023 00:22:20 -0500 Subject: [PATCH] Add getFilters function --- src/db/events.ts | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/db/events.ts b/src/db/events.ts index a0ddc650..4805d351 100644 --- a/src/db/events.ts +++ b/src/db/events.ts @@ -34,7 +34,7 @@ function insertEvent(event: SignedEvent): Promise { }); } -async function getFilter(filter: Filter): Promise[]> { +function getFilterQuery(filter: Filter) { let query = db.selectFrom('events').selectAll().orderBy('created_at', 'desc'); for (const key of Object.keys(filter)) { @@ -69,11 +69,25 @@ async function getFilter(filter: Filter): Promise< } } - const events = await query.execute(); + return query; +} + +async function getFilters(filters: [Filter]): Promise[]>; +async function getFilters(filters: Filter[]): Promise; +async function getFilters(filters: Filter[]) { + const queries = filters + .map(getFilterQuery) + .map((query) => query.execute()); + + const events = (await Promise.all(queries)).flat(); return events.map((event) => ( - { ...event, tags: JSON.parse(event.tags) } as SignedEvent + { ...event, tags: JSON.parse(event.tags) } )); } -export { getFilter, insertEvent }; +function getFilter(filter: Filter): Promise[]> { + return getFilters([filter]); +} + +export { getFilter, getFilters, insertEvent };