11import { getAnalytics } from "@/lib/analytics/get-analytics" ;
2+ import { getDefaultProgramIdOrThrow } from "@/lib/api/programs/get-default-program-id-or-throw" ;
23import { getProgramOrThrow } from "@/lib/api/programs/get-program-or-throw" ;
34import { withWorkspace } from "@/lib/auth" ;
45import { 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