diff --git a/apps/web/test/lib/getSchedule/selectedSlots.test.ts b/apps/web/test/lib/getSchedule/selectedSlots.test.ts index dbbc2a1709..61411fae8f 100644 --- a/apps/web/test/lib/getSchedule/selectedSlots.test.ts +++ b/apps/web/test/lib/getSchedule/selectedSlots.test.ts @@ -11,8 +11,7 @@ import { describe, test, beforeEach, vi } from "vitest"; import type { z } from "zod"; import { prisma } from "@calcom/prisma"; -import type { GetScheduleOptions } from "@calcom/trpc/server/routers/viewer/slots/getSchedule.handler"; -import type { getScheduleSchema } from "@calcom/trpc/server/routers/viewer/slots/types"; +import type { getScheduleSchema, GetScheduleOptions } from "@calcom/trpc/server/routers/viewer/slots/types"; import { getAvailableSlots as getSchedule } from "@calcom/trpc/server/routers/viewer/slots/util"; import { expect } from "./expects"; diff --git a/packages/trpc/server/routers/viewer/apps/updateAppCredentials.handler.ts b/packages/trpc/server/routers/viewer/apps/updateAppCredentials.handler.ts index f7835f2dce..260c142093 100644 --- a/packages/trpc/server/routers/viewer/apps/updateAppCredentials.handler.ts +++ b/packages/trpc/server/routers/viewer/apps/updateAppCredentials.handler.ts @@ -5,7 +5,6 @@ import { TRPCError } from "@trpc/server"; import type { TrpcSessionUser } from "../../../trpc"; import type { TUpdateAppCredentialsInputSchema } from "./updateAppCredentials.schema"; -import { handleCustomValidations } from "./updateAppCredentials.validator"; export type UpdateAppCredentialsOptions = { ctx: { @@ -14,6 +13,27 @@ export type UpdateAppCredentialsOptions = { input: TUpdateAppCredentialsInputSchema; }; +const validators = { + paypal: () => import("@calcom/paypal/lib/updateAppCredentials.validator"), +}; + +export const handleCustomValidations = async ({ + ctx, + input, + appId, +}: UpdateAppCredentialsOptions & { appId: string }) => { + const { key } = input; + const validatorGetter = validators[appId as keyof typeof validators]; + // If no validator is found, return the key as is + if (!validatorGetter) return key; + try { + const validator = (await validatorGetter()).default; + return await validator({ input, ctx }); + } catch (error) { + throw new TRPCError({ code: "BAD_REQUEST" }); + } +}; + export const updateAppCredentialsHandler = async ({ ctx, input }: UpdateAppCredentialsOptions) => { const { user } = ctx; diff --git a/packages/trpc/server/routers/viewer/apps/updateAppCredentials.validator.ts b/packages/trpc/server/routers/viewer/apps/updateAppCredentials.validator.ts deleted file mode 100644 index 49567666dd..0000000000 --- a/packages/trpc/server/routers/viewer/apps/updateAppCredentials.validator.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { TRPCError } from "@trpc/server"; - -import type { UpdateAppCredentialsOptions } from "./updateAppCredentials.handler"; - -const validators = { - paypal: () => import("@calcom/paypal/lib/updateAppCredentials.validator"), -}; - -export const handleCustomValidations = async ({ - ctx, - input, - appId, -}: UpdateAppCredentialsOptions & { appId: string }) => { - const { key } = input; - const validatorGetter = validators[appId as keyof typeof validators]; - // If no validator is found, return the key as is - if (!validatorGetter) return key; - try { - const validator = (await validatorGetter()).default; - return await validator({ input, ctx }); - } catch (error) { - throw new TRPCError({ code: "BAD_REQUEST" }); - } -}; diff --git a/packages/trpc/server/routers/viewer/slots/getSchedule.handler.ts b/packages/trpc/server/routers/viewer/slots/getSchedule.handler.ts index 149fd46ad3..cbea7c78e3 100644 --- a/packages/trpc/server/routers/viewer/slots/getSchedule.handler.ts +++ b/packages/trpc/server/routers/viewer/slots/getSchedule.handler.ts @@ -1,17 +1,6 @@ -import type { IncomingMessage } from "http"; - -import type { TGetScheduleInputSchema } from "./getSchedule.schema"; +import type { GetScheduleOptions } from "./types"; import { getAvailableSlots } from "./util"; -export type GetScheduleOptions = { - ctx?: ContextForGetSchedule; - input: TGetScheduleInputSchema; -}; - -interface ContextForGetSchedule extends Record { - req?: (IncomingMessage & { cookies: Partial<{ [key: string]: string }> }) | undefined; -} - export const getScheduleHandler = async ({ ctx, input }: GetScheduleOptions) => { return await getAvailableSlots({ ctx, input }); }; diff --git a/packages/trpc/server/routers/viewer/slots/types.ts b/packages/trpc/server/routers/viewer/slots/types.ts index 3741303ddb..27d4d9f6ff 100644 --- a/packages/trpc/server/routers/viewer/slots/types.ts +++ b/packages/trpc/server/routers/viewer/slots/types.ts @@ -1,5 +1,8 @@ +import type { IncomingMessage } from "http"; import { z } from "zod"; +import type { TGetScheduleInputSchema } from "./getSchedule.schema"; + export const getScheduleSchema = z .object({ // startTime ISOString @@ -74,3 +77,12 @@ export type Slot = { export const removeSelectedSlotSchema = z.object({ uid: z.string().nullable(), }); + +export interface ContextForGetSchedule extends Record { + req?: (IncomingMessage & { cookies: Partial<{ [key: string]: string }> }) | undefined; +} + +export type GetScheduleOptions = { + ctx?: ContextForGetSchedule; + input: TGetScheduleInputSchema; +}; diff --git a/packages/trpc/server/routers/viewer/slots/util.ts b/packages/trpc/server/routers/viewer/slots/util.ts index 9af48a754c..c317e7be8d 100644 --- a/packages/trpc/server/routers/viewer/slots/util.ts +++ b/packages/trpc/server/routers/viewer/slots/util.ts @@ -40,9 +40,9 @@ import type { CredentialPayload, CredentialForCalendarService } from "@calcom/ty import { TRPCError } from "@trpc/server"; -import type { GetScheduleOptions } from "./getSchedule.handler"; import type { TGetScheduleInputSchema } from "./getSchedule.schema"; import { handleNotificationWhenNoSlots } from "./handleNotificationWhenNoSlots"; +import type { GetScheduleOptions } from "./types"; const log = logger.getSubLogger({ prefix: ["[slots/util]"] }); type GetAvailabilityUserWithoutDelegationCredentials = Omit & {