Skip to content

Commit ade145c

Browse files
committed
fix commission timeseries
1 parent f71a6d2 commit ade145c

2 files changed

Lines changed: 35 additions & 28 deletions

File tree

  • apps/web/app/(ee)/api

apps/web/app/(ee)/api/commissions/timeseries/route.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { getStartEndDates } from "@/lib/analytics/utils/get-start-end-dates";
2+
import { getDefaultProgramIdOrThrow } from "@/lib/api/programs/get-default-program-id-or-throw";
23
import { getProgramOrThrow } from "@/lib/api/programs/get-program-or-throw";
34
import { withWorkspace } from "@/lib/auth";
45
import { sqlGranularityMap } from "@/lib/planetscale/granularity";
@@ -21,20 +22,22 @@ interface Commission {
2122

2223
// GET /api/commissions/timeseries - get commissions timeseries for a program
2324
export const GET = withWorkspace(async ({ workspace, searchParams }) => {
24-
const { programId } = searchParams;
25-
26-
const program = await getProgramOrThrow({
27-
workspaceId: workspace.id,
28-
programId,
29-
});
25+
const programId = getDefaultProgramIdOrThrow(workspace);
3026

3127
const { start, end, interval, timezone } = querySchema.parse(searchParams);
3228

3329
const { startDate, endDate, granularity } = getStartEndDates({
3430
interval,
3531
start,
3632
end,
37-
dataAvailableFrom: program.createdAt,
33+
dataAvailableFrom:
34+
// ideally we should get the first commission event date for dataAvailableFrom
35+
interval === "all"
36+
? await getProgramOrThrow({
37+
workspaceId: workspace.id,
38+
programId,
39+
}).then((program) => program.createdAt)
40+
: undefined,
3841
});
3942

4043
const { dateFormat, dateIncrement, startFunction, formatString } =
@@ -47,7 +50,7 @@ export const GET = withWorkspace(async ({ workspace, searchParams }) => {
4750
FROM Commission
4851
WHERE
4952
earnings > 0
50-
AND programId = ${program.id}
53+
AND programId = ${programId}
5154
AND createdAt >= ${startDate}
5255
AND createdAt < ${endDate}
5356
GROUP BY start
Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { getAnalytics } from "@/lib/analytics/get-analytics";
2+
import { getDefaultProgramIdOrThrow } from "@/lib/api/programs/get-default-program-id-or-throw";
23
import { getProgramOrThrow } from "@/lib/api/programs/get-program-or-throw";
34
import { withWorkspace } from "@/lib/auth";
45
import { analyticsQuerySchema } from "@/lib/zod/schemas/analytics";
@@ -14,27 +15,30 @@ const querySchema = analyticsQuerySchema.pick({
1415
});
1516

1617
// GET /api/programs/[programId]/revenue - get revenue timeseries for a program
17-
export const GET = withWorkspace(
18-
async ({ workspace, params, searchParams }) => {
19-
const program = await getProgramOrThrow({
20-
workspaceId: workspace.id,
21-
programId: params.programId,
22-
});
18+
export const GET = withWorkspace(async ({ workspace, searchParams }) => {
19+
const programId = getDefaultProgramIdOrThrow(workspace);
2320

24-
const parsedParams = querySchema.parse(searchParams);
21+
const parsedParams = querySchema.parse(searchParams);
22+
const { interval } = parsedParams;
2523

26-
const response = await getAnalytics({
27-
...parsedParams,
28-
workspaceId: workspace.id,
29-
programId: program.id,
30-
dataAvailableFrom: program.createdAt,
31-
});
24+
const response = await getAnalytics({
25+
...parsedParams,
26+
workspaceId: workspace.id,
27+
programId,
28+
dataAvailableFrom:
29+
// ideally we should get the first commission event date for dataAvailableFrom
30+
interval === "all"
31+
? await getProgramOrThrow({
32+
workspaceId: workspace.id,
33+
programId,
34+
}).then((program) => program.createdAt)
35+
: undefined,
36+
});
3237

33-
const timeseries = response.map((item) => ({
34-
start: item.start,
35-
saleAmount: item.saleAmount,
36-
}));
38+
const timeseries = response.map((item) => ({
39+
start: item.start,
40+
saleAmount: item.saleAmount,
41+
}));
3742

38-
return NextResponse.json(timeseries);
39-
},
40-
);
43+
return NextResponse.json(timeseries);
44+
});

0 commit comments

Comments
 (0)