feat: improve validations of users/attendee/availabilty to support required fields

This commit is contained in:
Agusti Fernandez Pardo
2022-04-01 22:04:42 +02:00
parent e284707250
commit 2b4a745f12
3 changed files with 29 additions and 3 deletions
+10 -1
View File
@@ -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",
+11 -1
View File
@@ -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",
+8 -1
View File
@@ -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,