From 29694352e7fbe25a738bad8f91ef417b0ef993d4 Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Thu, 20 Jun 2024 12:11:49 -0700 Subject: [PATCH] add timestamp column to prisma realtime queries --- src/queries/analytics/events/getEvents.ts | 29 ++++++++++++------- src/queries/analytics/sessions/getSessions.ts | 29 ++++++++++++------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/queries/analytics/events/getEvents.ts b/src/queries/analytics/events/getEvents.ts index b727540d..c333242e 100644 --- a/src/queries/analytics/events/getEvents.ts +++ b/src/queries/analytics/events/getEvents.ts @@ -13,17 +13,26 @@ export function getEvents(...args: [websiteId: string, filters: QueryFilters]) { function relationalQuery(websiteId: string, filters: QueryFilters) { const { startDate } = filters; - return prisma.client.websiteEvent.findMany({ - where: { - websiteId, - createdAt: { - gte: startDate, + return prisma.client.websiteEvent + .findMany({ + where: { + websiteId, + createdAt: { + gte: startDate, + }, }, - }, - orderBy: { - createdAt: 'desc', - }, - }); + orderBy: { + createdAt: 'desc', + }, + }) + .then(a => { + return Object.values(a).map(a => { + return { + ...a, + timestamp: new Date(a.createdAt).getTime() / 1000, + }; + }); + }); } function clickhouseQuery(websiteId: string, filters: QueryFilters) { diff --git a/src/queries/analytics/sessions/getSessions.ts b/src/queries/analytics/sessions/getSessions.ts index 71a5bee6..a11edd39 100644 --- a/src/queries/analytics/sessions/getSessions.ts +++ b/src/queries/analytics/sessions/getSessions.ts @@ -13,17 +13,26 @@ export async function getSessions(...args: [websiteId: string, filters: QueryFil async function relationalQuery(websiteId: string, filters: QueryFilters) { const { startDate } = filters; - return prisma.client.session.findMany({ - where: { - websiteId, - createdAt: { - gte: startDate, + return prisma.client.session + .findMany({ + where: { + websiteId, + createdAt: { + gte: startDate, + }, }, - }, - orderBy: { - createdAt: 'desc', - }, - }); + orderBy: { + createdAt: 'desc', + }, + }) + .then(a => { + return Object.values(a).map(a => { + return { + ...a, + timestamp: new Date(a.createdAt).getTime() / 1000, + }; + }); + }); } async function clickhouseQuery(websiteId: string, filters: QueryFilters) {