From 530d6fb323761db3d188746e929d9b0ae75bc54a Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 1 Feb 2025 16:20:22 -0800 Subject: [PATCH] Fixed reports. --- package.json | 2 +- .../[reportId]/FieldFilterEditForm.tsx | 2 +- .../[websiteId]/sessions/SessionsWeekly.tsx | 2 +- src/app/api/reports/revenue/route.ts | 15 ++----- src/app/api/reports/route.ts | 41 +++++++++++++++++-- src/app/api/teams/[teamId]/route.ts | 6 +-- .../[websiteId]/events/series/route.ts | 2 +- .../[websiteId]/sessions/stats/route.ts | 4 +- .../api/websites/[websiteId]/values/route.ts | 2 +- src/lib/schema.ts | 4 ++ src/queries/analytics/getValues.ts | 4 +- yarn.lock | 8 ++-- 12 files changed, 59 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index afab156b..31320109 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "npm-run-all": "^4.1.5", "prisma": "6.1.0", "react": "^19.0.0", - "react-basics": "^0.125.0", + "react-basics": "^0.126.0", "react-beautiful-dnd": "^13.1.0", "react-dom": "^19.0.0", "react-error-boundary": "^4.0.4", diff --git a/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx b/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx index a1417780..bfe4ff5f 100644 --- a/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx +++ b/src/app/(main)/reports/[reportId]/FieldFilterEditForm.tsx @@ -226,7 +226,7 @@ const ResultsMenu = ({ values, type, isLoading, onSelect }) => { return ( - {values?.map((value: any) => { + {values?.map(({ value }) => { return {formatValue(value, type)}; })} diff --git a/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx b/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx index b473a989..4280b7e9 100644 --- a/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx +++ b/src/app/(main)/websites/[websiteId]/sessions/SessionsWeekly.tsx @@ -57,7 +57,7 @@ export function SessionsWeekly({ websiteId }: { websiteId: string }) { {day?.map((hour: number, n) => { const pct = hour / max; return ( -
+
{hour > 0 && ( }) { - const schema = z.object({ - teamId: z.string().uuid(), - }); - - const { auth, error } = await parseRequest(request, schema); + const { auth, error } = await parseRequest(request); if (error) { return error(); diff --git a/src/app/api/websites/[websiteId]/events/series/route.ts b/src/app/api/websites/[websiteId]/events/series/route.ts index 99378612..413988af 100644 --- a/src/app/api/websites/[websiteId]/events/series/route.ts +++ b/src/app/api/websites/[websiteId]/events/series/route.ts @@ -25,7 +25,7 @@ export async function GET( const { websiteId } = await params; const { timezone } = query; - const { startDate, endDate, unit } = await getRequestDateRange(request); + const { startDate, endDate, unit } = await getRequestDateRange(query); if (!(await canViewWebsite(auth, websiteId))) { return unauthorized(); diff --git a/src/app/api/websites/[websiteId]/sessions/stats/route.ts b/src/app/api/websites/[websiteId]/sessions/stats/route.ts index 8149942a..016e9cf4 100644 --- a/src/app/api/websites/[websiteId]/sessions/stats/route.ts +++ b/src/app/api/websites/[websiteId]/sessions/stats/route.ts @@ -15,7 +15,7 @@ export async function GET( ...filterParams, }); - const { auth, error } = await parseRequest(request, schema); + const { auth, query, error } = await parseRequest(request, schema); if (error) { return error(); @@ -27,7 +27,7 @@ export async function GET( return unauthorized(); } - const { startDate, endDate } = await getRequestDateRange(request); + const { startDate, endDate } = await getRequestDateRange(query); const filters = getRequestFilters(request); diff --git a/src/app/api/websites/[websiteId]/values/route.ts b/src/app/api/websites/[websiteId]/values/route.ts index 6e7b51d6..b81bdcc8 100644 --- a/src/app/api/websites/[websiteId]/values/route.ts +++ b/src/app/api/websites/[websiteId]/values/route.ts @@ -24,7 +24,7 @@ export async function GET( const { websiteId } = await params; const { type, search } = query; - const { startDate, endDate } = await getRequestDateRange(request); + const { startDate, endDate } = await getRequestDateRange(query); if (!(await canViewWebsite(auth, websiteId))) { return unauthorized(); diff --git a/src/lib/schema.ts b/src/lib/schema.ts index 9978d9e5..21da4f42 100644 --- a/src/lib/schema.ts +++ b/src/lib/schema.ts @@ -51,5 +51,9 @@ export const reportParms = { dateRange: z.object({ startDate: z.coerce.date(), endDate: z.coerce.date(), + num: z.coerce.number().optional(), + offset: z.coerce.number().optional(), + unit: z.string().optional(), + value: z.string().optional(), }), }; diff --git a/src/queries/analytics/getValues.ts b/src/queries/analytics/getValues.ts index f303faff..f98cca3a 100644 --- a/src/queries/analytics/getValues.ts +++ b/src/queries/analytics/getValues.ts @@ -42,7 +42,7 @@ async function relationalQuery( return rawQuery( ` - select ${column} as "value", count(*) + select ${column} as "value", count(*) as "count" from website_event inner join session on session.session_id = website_event.session_id @@ -98,7 +98,7 @@ async function clickhouseQuery( return rawQuery( ` - select ${column} as value, count(*) + select ${column} as "value", count(*) as "count" from website_event where website_id = {websiteId:UUID} and created_at between {startDate:DateTime64} and {endDate:DateTime64} diff --git a/yarn.lock b/yarn.lock index 91546c34..106e0f60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9206,10 +9206,10 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -react-basics@^0.125.0: - version "0.125.0" - resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.125.0.tgz#6baf3fea503fb4475f51877efa05d1a734b232c6" - integrity sha512-8swjTaKfenwb+NunwzQo16V+dCA/38Kd+PSYWpBFyNmlFzs3Ax2ZgnysxDhW9IgfFr4wR6/0gzD3S31WzXq6Kw== +react-basics@^0.126.0: + version "0.126.0" + resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.126.0.tgz#44e7f5e5ab9d411e91e697dd39c6cb53b6222ae0" + integrity sha512-TQtNZMeH5FtJjYxSN72rBmZWlIcs9jK3oVSCUUxfZq9LnFdoFSagTLCrihs3YCnX8vZEJXaJHQsp7lKEfyH5sw== dependencies: "@react-spring/web" "^9.7.3" classnames "^2.3.1"