feat: improve validations of users/attendee/availabilty to support required fields
This commit is contained in:
@@ -1,11 +1,20 @@
|
||||
import { withValidation } from "next-validations";
|
||||
import { z } from "zod";
|
||||
|
||||
import { _AttendeeModel as Attendee } from "@calcom/prisma/zod";
|
||||
|
||||
export const schemaAttendeeBodyParams = Attendee.omit({ id: true }).partial();
|
||||
export const schemaAttendeeBaseBodyParams = Attendee.omit({ id: true }).partial();
|
||||
|
||||
export const schemaAttendeePublic = Attendee.omit({});
|
||||
|
||||
const schemaAttendeeRequiredParams = z.object({
|
||||
email: z.string().email(),
|
||||
name: z.string(),
|
||||
timeZone: z.string(),
|
||||
});
|
||||
|
||||
export const schemaAttendeeBodyParams = schemaAttendeeBaseBodyParams.merge(schemaAttendeeRequiredParams);
|
||||
|
||||
export const withValidAttendee = withValidation({
|
||||
schema: schemaAttendeeBodyParams,
|
||||
type: "Zod",
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
import { withValidation } from "next-validations";
|
||||
import { z } from "zod";
|
||||
|
||||
import { _AvailabilityModel as Availability } from "@calcom/prisma/zod";
|
||||
|
||||
export const schemaAvailabilityBodyParams = Availability.omit({ id: true });
|
||||
export const schemaAvailabilityBaseBodyParams = Availability.omit({ id: true }).partial();
|
||||
|
||||
export const schemaAvailabilityPublic = Availability.omit({});
|
||||
|
||||
const schemaAvailabilityRequiredParams = z.object({
|
||||
startTime: z.string(),
|
||||
endTime: z.string(),
|
||||
});
|
||||
|
||||
export const schemaAvailabilityBodyParams = schemaAvailabilityBaseBodyParams.merge(
|
||||
schemaAvailabilityRequiredParams
|
||||
);
|
||||
|
||||
export const withValidAvailability = withValidation({
|
||||
schema: schemaAvailabilityBodyParams,
|
||||
type: "Zod",
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { withValidation } from "next-validations";
|
||||
import { z } from "zod";
|
||||
|
||||
import { _UserModel as User } from "@calcom/prisma/zod";
|
||||
|
||||
export const schemaUserBodyParams = User.omit({
|
||||
export const schemaUserBaseBodyParams = User.omit({
|
||||
id: true,
|
||||
createdAt: true,
|
||||
password: true,
|
||||
@@ -10,6 +11,12 @@ export const schemaUserBodyParams = User.omit({
|
||||
twoFactorSecret: true,
|
||||
}).partial();
|
||||
|
||||
const schemaUserRequiredParams = z.object({
|
||||
email: z.string().email(),
|
||||
});
|
||||
|
||||
export const schemaUserBodyParams = schemaUserBaseBodyParams.merge(schemaUserRequiredParams);
|
||||
|
||||
export const schemaUserPublic = User.omit({
|
||||
identityProvider: true,
|
||||
identityProviderId: true,
|
||||
|
||||
Reference in New Issue
Block a user