diff --git a/lib/validations/availability.ts b/lib/validations/availability.ts index 4400ff2bad..20e3c61c94 100644 --- a/lib/validations/availability.ts +++ b/lib/validations/availability.ts @@ -14,8 +14,8 @@ export const schemaAvailabilityBaseBodyParams = Availability.pick({ export const schemaAvailabilityPublic = Availability.omit({}); const schemaAvailabilityRequiredParams = z.object({ - startTime: z.date(), - endTime: z.date(), + startTime: z.date().or(z.string()).optional(), + endTime: z.date().or(z.string()).optional(), days: z.array(z.number()).optional(), eventTypeId: z.number().optional(), }); diff --git a/pages/api/availabilities/[id].ts b/pages/api/availabilities/[id].ts index 8e2fcd724a..5c154cf0f8 100644 --- a/pages/api/availabilities/[id].ts +++ b/pages/api/availabilities/[id].ts @@ -93,6 +93,7 @@ import { */ export async function availabilityById(req: NextApiRequest, res: NextApiResponse) { const { method, query, body } = req; + const safeBody = schemaAvailabilityBodyParams.safeParse(body); const safeQuery = schemaQueryIdParseInt.safeParse(query); if (!safeQuery.success) throw new Error("Invalid request query", safeQuery.error); const userId = req.userId; @@ -112,14 +113,14 @@ export async function availabilityById(req: NextApiRequest, res: NextApiResponse break; case "PATCH": - const safeBody = schemaAvailabilityBodyParams.safeParse(body); if (!safeBody.success) throw new Error("Invalid request body"); const userEventTypes = await prisma.eventType.findMany({ where: { userId } }); const userEventTypesIds = userEventTypes.map((event) => event.id); if (safeBody.data.eventTypeId && !userEventTypesIds.includes(safeBody.data.eventTypeId)) { - res.status(401).json({ message: "Bad request. You're not the owner of eventTypeId" }); - // throw new Error("Bad request. You're not the owner of eventTypeId"); + res.status(401).json({ + message: `Bad request. You're not the owner of eventTypeId: ${safeBody.data.eventTypeId}`, + }); } await prisma.availability .update({