From fb06bdf14aa1733034d6622fd1897ecfa2794716 Mon Sep 17 00:00:00 2001 From: dax Date: Sat, 30 Mar 2024 13:11:32 +0100 Subject: [PATCH 1/2] add query by date --- src/entities/Event/model.ts | 7 +++++++ src/entities/Event/routes/getEventList.ts | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/src/entities/Event/model.ts b/src/entities/Event/model.ts index 3e38a8e7..d7de092a 100644 --- a/src/entities/Event/model.ts +++ b/src/entities/Event/model.ts @@ -247,6 +247,13 @@ export default class EventModel extends Model { options.list === EventListType.Upcoming, SQL`AND e.next_finish_at > now() AND e.next_start_at > now()` )} + ${conditional( + !!options.date, + SQL` + AND e.start_at >= '${date}T00:00:00.000Z + AND e.start_at < '${date}T23:59:59.000Z' + ` + )} ${conditional(!!options.search, SQL`AND "rank" > 0`)} ${conditional( !!options.creator, diff --git a/src/entities/Event/routes/getEventList.ts b/src/entities/Event/routes/getEventList.ts index fbef821c..158d35dc 100644 --- a/src/entities/Event/routes/getEventList.ts +++ b/src/entities/Event/routes/getEventList.ts @@ -49,6 +49,15 @@ export async function getEventList(req: WithAuth) { options.schedule = query.schedule } + if (query.date) { + if (isNaN(new Date(query.date))) { + //out of bound + return [] + } else { + options.date = query.date + } + } + if (query.position) { const [x, y] = query.position.split(",").slice(0, 2).map(Number) as [ number, From a6a9e8ffc0ed7fc09ec3657358013b324239be6b Mon Sep 17 00:00:00 2001 From: Jongwoo Park Date: Sun, 31 Mar 2024 14:31:34 +0200 Subject: [PATCH 2/2] added date type in the event list options --- src/entities/Event/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/entities/Event/types.ts b/src/entities/Event/types.ts index 2caaaf42..ea80a9f4 100644 --- a/src/entities/Event/types.ts +++ b/src/entities/Event/types.ts @@ -199,6 +199,7 @@ export type EventListOptions = { limit?: number offset?: number order?: "asc" | "desc" + date?: string } export const editEventAttributes = [