diff --git a/src/app/api/reports/goals/route.ts b/src/app/api/reports/goals/route.ts index cad774bd..7aceabc8 100644 --- a/src/app/api/reports/goals/route.ts +++ b/src/app/api/reports/goals/route.ts @@ -10,16 +10,23 @@ export async function POST(request: Request) { ...reportParms, goals: z .array( - z.object({ - type: z.string().regex(/url|event|event-data/), - value: z.string(), - goal: z.number(), - operator: z - .string() - .regex(/count|sum|average/) - .refine(data => data['type'] === 'event-data'), - property: z.string().refine(data => data['type'] === 'event-data'), - }), + z + .object({ + type: z.string().regex(/url|event|event-data/), + value: z.string(), + goal: z.coerce.number(), + operator: z + .string() + .regex(/count|sum|average/) + .optional(), + property: z.string().optional(), + }) + .refine(data => { + if (data['type'] === 'event-data') { + return data['operator'] && data['property']; + } + return true; + }), ) .min(1), }); diff --git a/src/app/api/reports/route.ts b/src/app/api/reports/route.ts index 56c1130d..19c175bd 100644 --- a/src/app/api/reports/route.ts +++ b/src/app/api/reports/route.ts @@ -8,6 +8,8 @@ import { getReports, createReport } from 'queries'; export async function GET(request: Request) { const schema = z.object({ + websiteId: z.string().uuid().optional(), + teamId: z.string().uuid().optional(), ...pagingParams, });