From 9156848503c804b6dfcd43763f0e877cbdc5a629 Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Wed, 10 Sep 2025 22:18:59 -0400 Subject: [PATCH] refactor: circular deps between app store and lib [2] (#23734) * mv getDefaultLocations * fix * 2 more utils * update imports * fix * move getConnectedApps * move handlePaymentSuccess * update imports * fix import * publish platform libraries --- apps/api/v2/package.json | 2 +- .../bulkUpdateEventsToDefaultLocation.ts | 15 ++++-------- .../bulkUpdateTeamEventsToDefaultLocation.ts | 18 +++++--------- .../_utils}/getConnectedApps.ts | 10 ++++---- .../_utils}/getDefaultLocations.test.ts | 7 +++--- .../_utils}/getDefaultLocations.ts | 16 ++++++------- .../_utils/payments}/handlePaymentSuccess.ts | 3 +-- packages/app-store/alby/api/webhook.ts | 2 +- .../app-store/btcpayserver/api/webhook.ts | 2 +- packages/app-store/hitpay/api/webhook.ts | 2 +- packages/app-store/paypal/api/webhook.ts | 2 +- packages/app-store/types.d.ts | 2 +- packages/features/ee/payments/api/webhook.ts | 2 +- packages/lib/server/getUsersCredentials.ts | 4 +--- .../useAtomsGetInstalledConferencingApps.ts | 2 +- packages/platform/libraries/app-store.ts | 4 ++-- packages/platform/libraries/event-types.ts | 4 ++-- .../viewer/apps/integrations.handler.ts | 2 +- .../bulkUpdateToDefaultLocation.handler.ts | 24 ++++++++++++++----- .../viewer/eventTypes/heavy/create.handler.ts | 2 +- yarn.lock | 10 ++++---- 21 files changed, 66 insertions(+), 69 deletions(-) rename packages/{lib => app-store/_utils}/bulkUpdateEventsToDefaultLocation.ts (72%) rename packages/{lib => app-store/_utils}/bulkUpdateTeamEventsToDefaultLocation.ts (66%) rename packages/{lib => app-store/_utils}/getConnectedApps.ts (95%) rename packages/{lib/server => app-store/_utils}/getDefaultLocations.test.ts (93%) rename packages/{lib/server => app-store/_utils}/getDefaultLocations.ts (76%) rename packages/{lib/payment => app-store/_utils/payments}/handlePaymentSuccess.ts (99%) diff --git a/apps/api/v2/package.json b/apps/api/v2/package.json index 22bdcee2fb..0447f8c859 100644 --- a/apps/api/v2/package.json +++ b/apps/api/v2/package.json @@ -38,7 +38,7 @@ "@axiomhq/winston": "^1.2.0", "@calcom/platform-constants": "*", "@calcom/platform-enums": "*", - "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.350", + "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.351", "@calcom/platform-types": "*", "@calcom/platform-utils": "*", "@calcom/prisma": "*", diff --git a/packages/lib/bulkUpdateEventsToDefaultLocation.ts b/packages/app-store/_utils/bulkUpdateEventsToDefaultLocation.ts similarity index 72% rename from packages/lib/bulkUpdateEventsToDefaultLocation.ts rename to packages/app-store/_utils/bulkUpdateEventsToDefaultLocation.ts index 7d2fc6a39f..1dd0bc3788 100644 --- a/packages/lib/bulkUpdateEventsToDefaultLocation.ts +++ b/packages/app-store/_utils/bulkUpdateEventsToDefaultLocation.ts @@ -1,10 +1,9 @@ -import type { LocationObject } from "@calcom/app-store/locations"; -import { getAppFromSlug } from "@calcom/app-store/utils"; import type { PrismaClient } from "@calcom/prisma"; import type { User } from "@calcom/prisma/client"; import { userMetadata as userMetadataSchema } from "@calcom/prisma/zod-utils"; -import { TRPCError } from "@trpc/server"; +import type { LocationObject } from "../locations"; +import { getAppFromSlug } from "../utils"; export const bulkUpdateEventsToDefaultLocation = async ({ eventTypeIds, @@ -18,19 +17,13 @@ export const bulkUpdateEventsToDefaultLocation = async ({ const defaultApp = userMetadataSchema.parse(user.metadata)?.defaultConferencingApp; if (!defaultApp) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: "Default conferencing app not set", - }); + throw new Error("Default conferencing app not set"); } const foundApp = getAppFromSlug(defaultApp.appSlug); const appType = foundApp?.appData?.location?.type; if (!appType) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: `Default conferencing app '${defaultApp.appSlug}' doesnt exist.`, - }); + throw new Error(`Default conferencing app '${defaultApp.appSlug}' doesnt exist.`); } const credential = await prisma.credential.findFirst({ diff --git a/packages/lib/bulkUpdateTeamEventsToDefaultLocation.ts b/packages/app-store/_utils/bulkUpdateTeamEventsToDefaultLocation.ts similarity index 66% rename from packages/lib/bulkUpdateTeamEventsToDefaultLocation.ts rename to packages/app-store/_utils/bulkUpdateTeamEventsToDefaultLocation.ts index 234d5ca7b9..85f16fc612 100644 --- a/packages/lib/bulkUpdateTeamEventsToDefaultLocation.ts +++ b/packages/app-store/_utils/bulkUpdateTeamEventsToDefaultLocation.ts @@ -1,9 +1,8 @@ -import type { LocationObject } from "@calcom/app-store/locations"; -import { getAppFromSlug } from "@calcom/app-store/utils"; import type { PrismaClient } from "@calcom/prisma"; import { teamMetadataSchema } from "@calcom/prisma/zod-utils"; -import { TRPCError } from "@trpc/server"; +import type { LocationObject } from "../locations"; +import { getAppFromSlug } from "../utils"; export const bulkUpdateTeamEventsToDefaultLocation = async ({ eventTypeIds, @@ -18,22 +17,17 @@ export const bulkUpdateTeamEventsToDefaultLocation = async ({ where: { id: teamId }, select: { metadata: true }, }); - const defaultApp = teamMetadataSchema.parse(team?.metadata)?.defaultConferencingApp; + const metadataResult = teamMetadataSchema.safeParse(team?.metadata); + const defaultApp = metadataResult.success ? metadataResult.data?.defaultConferencingApp : null; if (!defaultApp) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: "Default conferencing app not set", - }); + throw new Error("Default conferencing app not set"); } const foundApp = getAppFromSlug(defaultApp.appSlug); const appType = foundApp?.appData?.location?.type; if (!appType) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: `Default conferencing app '${defaultApp.appSlug}' doesnt exist.`, - }); + throw new Error(`Default conferencing app '${defaultApp.appSlug}' doesnt exist.`); } const credential = await prisma.credential.findFirst({ diff --git a/packages/lib/getConnectedApps.ts b/packages/app-store/_utils/getConnectedApps.ts similarity index 95% rename from packages/lib/getConnectedApps.ts rename to packages/app-store/_utils/getConnectedApps.ts index 09fde58bc0..19a795a253 100644 --- a/packages/lib/getConnectedApps.ts +++ b/packages/app-store/_utils/getConnectedApps.ts @@ -1,19 +1,19 @@ import type { Prisma } from "@prisma/client"; -import type { TDependencyData } from "@calcom/app-store/_appRegistry"; -import { PaymentServiceMap } from "@calcom/app-store/payment.services.generated"; -import type { CredentialOwner } from "@calcom/app-store/types"; -import { getAppFromSlug } from "@calcom/app-store/utils"; import { checkAdminOrOwner } from "@calcom/features/auth/lib/checkAdminOrOwner"; import getEnabledAppsFromCredentials from "@calcom/lib/apps/getEnabledAppsFromCredentials"; import getInstallCountPerApp from "@calcom/lib/apps/getInstallCountPerApp"; +import { buildNonDelegationCredentials } from "@calcom/lib/delegationCredential/clientAndServer"; import { getUsersCredentialsIncludeServiceAccountKey } from "@calcom/lib/server/getUsersCredentials"; import type { PrismaClient } from "@calcom/prisma"; import type { User } from "@calcom/prisma/client"; import type { AppCategories } from "@calcom/prisma/enums"; import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential"; -import { buildNonDelegationCredentials } from "./delegationCredential/clientAndServer"; +import type { TDependencyData } from "../_appRegistry"; +import { PaymentServiceMap } from "../payment.services.generated"; +import type { CredentialOwner } from "../types"; +import { getAppFromSlug } from "../utils"; export type ConnectedApps = Awaited>; type InputSchema = { diff --git a/packages/lib/server/getDefaultLocations.test.ts b/packages/app-store/_utils/getDefaultLocations.test.ts similarity index 93% rename from packages/lib/server/getDefaultLocations.test.ts rename to packages/app-store/_utils/getDefaultLocations.test.ts index a3937c4be1..456083f9f0 100644 --- a/packages/lib/server/getDefaultLocations.test.ts +++ b/packages/app-store/_utils/getDefaultLocations.test.ts @@ -4,13 +4,12 @@ import { getGoogleMeetCredential, TestData } from "@calcom/web/test/utils/bookin import { describe, expect, it } from "vitest"; -import { DailyLocationType, MeetLocationType } from "@calcom/app-store/locations"; - +import { DailyLocationType, MeetLocationType } from "../locations"; import { getDefaultLocations } from "./getDefaultLocations"; type User = { id: number; - email?: string; + email: string; name?: string; metadata: { defaultConferencingApp?: { @@ -34,6 +33,7 @@ describe("getDefaultLocation ", async () => { it("should return location based on user default conferencing app", async () => { const user: User = { id: 101, + email: "test@example.com", metadata: { defaultConferencingApp: { appSlug: "google-meet", @@ -53,6 +53,7 @@ describe("getDefaultLocation ", async () => { it("should return calvideo when default conferencing app is not set", async () => { const user: User = { id: 101, + email: "test@example.com", metadata: {}, }; await mockUser(user); diff --git a/packages/lib/server/getDefaultLocations.ts b/packages/app-store/_utils/getDefaultLocations.ts similarity index 76% rename from packages/lib/server/getDefaultLocations.ts rename to packages/app-store/_utils/getDefaultLocations.ts index 4c41d40848..8b8f4dccfe 100644 --- a/packages/lib/server/getDefaultLocations.ts +++ b/packages/app-store/_utils/getDefaultLocations.ts @@ -1,16 +1,16 @@ -import getAppKeysFromSlug from "@calcom/app-store/_utils/getAppKeysFromSlug"; -import { DailyLocationType } from "@calcom/app-store/constants"; -import getApps from "@calcom/app-store/utils"; import { getUsersCredentialsIncludeServiceAccountKey } from "@calcom/lib/server/getUsersCredentials"; +import type { Prisma } from "@calcom/prisma/client"; import { userMetadata as userMetadataSchema } from "@calcom/prisma/zod-utils"; import type { EventTypeLocation } from "@calcom/prisma/zod/custom/eventtype"; -import type { TrpcSessionUser } from "@calcom/trpc/server/types"; -type SessionUser = NonNullable; +import { DailyLocationType } from "../constants"; +import getApps from "../utils"; +import getAppKeysFromSlug from "./getAppKeysFromSlug"; + type User = { - id: SessionUser["id"]; - email: SessionUser["email"]; - metadata: SessionUser["metadata"]; + id: number; + email: string; + metadata: Prisma.JsonValue; }; export async function getDefaultLocations(user: User): Promise { diff --git a/packages/lib/payment/handlePaymentSuccess.ts b/packages/app-store/_utils/payments/handlePaymentSuccess.ts similarity index 99% rename from packages/lib/payment/handlePaymentSuccess.ts rename to packages/app-store/_utils/payments/handlePaymentSuccess.ts index 7860865562..6dde6b49b7 100644 --- a/packages/lib/payment/handlePaymentSuccess.ts +++ b/packages/app-store/_utils/payments/handlePaymentSuccess.ts @@ -9,14 +9,13 @@ import { getPlatformParams } from "@calcom/features/platform-oauth-client/get-pl import { PlatformOAuthClientRepository } from "@calcom/features/platform-oauth-client/platform-oauth-client.repository"; import EventManager, { placeholderCreatedEvent } from "@calcom/lib/EventManager"; import { HttpError as HttpCode } from "@calcom/lib/http-error"; +import logger from "@calcom/lib/logger"; import { getBooking } from "@calcom/lib/payment/getBooking"; import prisma from "@calcom/prisma"; import { BookingStatus } from "@calcom/prisma/enums"; import type { EventTypeMetadata } from "@calcom/prisma/zod-utils"; import { eventTypeAppMetadataOptionalSchema } from "@calcom/prisma/zod-utils"; -import logger from "../logger"; - const log = logger.getSubLogger({ prefix: ["[handlePaymentSuccess]"] }); export async function handlePaymentSuccess(paymentId: number, bookingId: number) { log.debug(`handling payment success for bookingId ${bookingId}`); diff --git a/packages/app-store/alby/api/webhook.ts b/packages/app-store/alby/api/webhook.ts index 811dd288aa..760b4c7315 100644 --- a/packages/app-store/alby/api/webhook.ts +++ b/packages/app-store/alby/api/webhook.ts @@ -2,12 +2,12 @@ import type { NextApiRequest, NextApiResponse } from "next"; import getRawBody from "raw-body"; import { z } from "zod"; +import { handlePaymentSuccess } from "@calcom/app-store/_utils/payments/handlePaymentSuccess"; import { albyCredentialKeysSchema } from "@calcom/app-store/alby/lib"; import parseInvoice from "@calcom/app-store/alby/lib/parseInvoice"; import { IS_PRODUCTION } from "@calcom/lib/constants"; import { getErrorFromUnknown } from "@calcom/lib/errors"; import { HttpError as HttpCode } from "@calcom/lib/http-error"; -import { handlePaymentSuccess } from "@calcom/lib/payment/handlePaymentSuccess"; import prisma from "@calcom/prisma"; export const config = { diff --git a/packages/app-store/btcpayserver/api/webhook.ts b/packages/app-store/btcpayserver/api/webhook.ts index 4236f018df..05465a1bb9 100644 --- a/packages/app-store/btcpayserver/api/webhook.ts +++ b/packages/app-store/btcpayserver/api/webhook.ts @@ -3,10 +3,10 @@ import type { NextApiRequest, NextApiResponse } from "next"; import getRawBody from "raw-body"; import { z } from "zod"; +import { handlePaymentSuccess } from "@calcom/app-store/_utils/payments/handlePaymentSuccess"; import { IS_PRODUCTION } from "@calcom/lib/constants"; import { getErrorFromUnknown } from "@calcom/lib/errors"; import { HttpError as HttpCode } from "@calcom/lib/http-error"; -import { handlePaymentSuccess } from "@calcom/lib/payment/handlePaymentSuccess"; import { PrismaBookingPaymentRepository as BookingPaymentRepository } from "@calcom/lib/server/repository/PrismaBookingPaymentRepository"; import appConfig from "../config.json"; diff --git a/packages/app-store/hitpay/api/webhook.ts b/packages/app-store/hitpay/api/webhook.ts index eb920c18fc..fbd8fdc563 100644 --- a/packages/app-store/hitpay/api/webhook.ts +++ b/packages/app-store/hitpay/api/webhook.ts @@ -2,10 +2,10 @@ import { createHmac } from "crypto"; import type { NextApiRequest, NextApiResponse } from "next"; import type z from "zod"; +import { handlePaymentSuccess } from "@calcom/app-store/_utils/payments/handlePaymentSuccess"; import { IS_PRODUCTION } from "@calcom/lib/constants"; import { getErrorFromUnknown } from "@calcom/lib/errors"; import { HttpError as HttpCode } from "@calcom/lib/http-error"; -import { handlePaymentSuccess } from "@calcom/lib/payment/handlePaymentSuccess"; import prisma from "@calcom/prisma"; import type { hitpayCredentialKeysSchema } from "../lib/hitpayCredentialKeysSchema"; diff --git a/packages/app-store/paypal/api/webhook.ts b/packages/app-store/paypal/api/webhook.ts index 951cf06c6a..796276d603 100644 --- a/packages/app-store/paypal/api/webhook.ts +++ b/packages/app-store/paypal/api/webhook.ts @@ -2,12 +2,12 @@ import type { NextApiRequest, NextApiResponse } from "next"; import getRawBody from "raw-body"; import { z } from "zod"; +import { handlePaymentSuccess } from "@calcom/app-store/_utils/payments/handlePaymentSuccess"; import { paypalCredentialKeysSchema } from "@calcom/app-store/paypal/lib"; import Paypal from "@calcom/app-store/paypal/lib/Paypal"; import { IS_PRODUCTION } from "@calcom/lib/constants"; import { getErrorFromUnknown } from "@calcom/lib/errors"; import { HttpError as HttpCode } from "@calcom/lib/http-error"; -import { handlePaymentSuccess } from "@calcom/lib/payment/handlePaymentSuccess"; import prisma from "@calcom/prisma"; export const config = { diff --git a/packages/app-store/types.d.ts b/packages/app-store/types.d.ts index ec200ab62c..4615834cd3 100644 --- a/packages/app-store/types.d.ts +++ b/packages/app-store/types.d.ts @@ -1,7 +1,7 @@ +import type { ConnectedApps } from "_utils/getConnectedApps"; import type React from "react"; import type { z } from "zod"; -import type { ConnectedApps } from "@calcom/lib/getConnectedApps"; import type { EventTypeFormMetadataSchema } from "@calcom/prisma/zod-utils"; import type { ButtonProps } from "@calcom/ui/components/button"; diff --git a/packages/features/ee/payments/api/webhook.ts b/packages/features/ee/payments/api/webhook.ts index 286d822d4b..b2fcd7b6f8 100644 --- a/packages/features/ee/payments/api/webhook.ts +++ b/packages/features/ee/payments/api/webhook.ts @@ -3,6 +3,7 @@ import { buffer } from "micro"; import type { NextApiRequest, NextApiResponse } from "next"; import type Stripe from "stripe"; +import { handlePaymentSuccess } from "@calcom/app-store/_utils/payments/handlePaymentSuccess"; import { sendAttendeeRequestEmailAndSMS, sendOrganizerRequestEmail } from "@calcom/emails"; import { doesBookingRequireConfirmation } from "@calcom/features/bookings/lib/doesBookingRequireConfirmation"; import { getAllCredentialsIncludeServiceAccountKey } from "@calcom/features/bookings/lib/getAllCredentialsForUsersOnEvent/getAllCredentials"; @@ -16,7 +17,6 @@ import { getErrorFromUnknown } from "@calcom/lib/errors"; import { HttpError as HttpCode } from "@calcom/lib/http-error"; import logger from "@calcom/lib/logger"; import { getBooking } from "@calcom/lib/payment/getBooking"; -import { handlePaymentSuccess } from "@calcom/lib/payment/handlePaymentSuccess"; import { safeStringify } from "@calcom/lib/safeStringify"; import { prisma } from "@calcom/prisma"; import { BookingStatus } from "@calcom/prisma/enums"; diff --git a/packages/lib/server/getUsersCredentials.ts b/packages/lib/server/getUsersCredentials.ts index 7006e93f35..34dffc0a6d 100644 --- a/packages/lib/server/getUsersCredentials.ts +++ b/packages/lib/server/getUsersCredentials.ts @@ -1,11 +1,9 @@ import { prisma } from "@calcom/prisma"; import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential"; -import type { TrpcSessionUser } from "@calcom/trpc/server/types"; import { enrichUserWithDelegationCredentialsIncludeServiceAccountKey } from "../delegationCredential/server"; -type SessionUser = NonNullable; -type User = { id: SessionUser["id"]; email: SessionUser["email"] }; +type User = { id: number; email: string }; /** * It includes in-memory DelegationCredential credentials as well. diff --git a/packages/platform/atoms/connect/conferencing-apps/hooks/useAtomsGetInstalledConferencingApps.ts b/packages/platform/atoms/connect/conferencing-apps/hooks/useAtomsGetInstalledConferencingApps.ts index f24e02d114..c54aca07ea 100644 --- a/packages/platform/atoms/connect/conferencing-apps/hooks/useAtomsGetInstalledConferencingApps.ts +++ b/packages/platform/atoms/connect/conferencing-apps/hooks/useAtomsGetInstalledConferencingApps.ts @@ -1,7 +1,7 @@ import { useQuery } from "@tanstack/react-query"; -import type { ConnectedApps } from "@calcom/lib/getConnectedApps"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { ConnectedApps } from "@calcom/platform-libraries/app-store"; import type { ApiResponse, ApiSuccessResponse } from "@calcom/platform-types"; import { useAtomsContext } from "../../../hooks/useAtomsContext"; diff --git a/packages/platform/libraries/app-store.ts b/packages/platform/libraries/app-store.ts index 0562e8c5da..7912bd1f12 100644 --- a/packages/platform/libraries/app-store.ts +++ b/packages/platform/libraries/app-store.ts @@ -20,11 +20,11 @@ export type { App } from "@calcom/types/App"; export { getEnabledAppsFromCredentials }; -export { getConnectedApps } from "@calcom/lib/getConnectedApps"; +export { getConnectedApps } from "@calcom/app-store/_utils/getConnectedApps"; export type { TServiceAccountKeySchema } from "@calcom/prisma/zod-utils"; -export type { ConnectedApps } from "@calcom/lib/getConnectedApps"; +export type { ConnectedApps } from "@calcom/app-store/_utils/getConnectedApps"; export type { AppsStatus } from "@calcom/types/Calendar"; diff --git a/packages/platform/libraries/event-types.ts b/packages/platform/libraries/event-types.ts index 1fd3fc34f5..2e71adcd9a 100644 --- a/packages/platform/libraries/event-types.ts +++ b/packages/platform/libraries/event-types.ts @@ -27,5 +27,5 @@ export type { EventTypesByViewer } from "@calcom/lib/event-types/getEventTypesBy export type { UpdateEventTypeReturn } from "@calcom/trpc/server/routers/viewer/eventTypes/heavy/update.handler"; export { updateNewTeamMemberEventTypes } from "@calcom/lib/server/queries/teams"; -export { bulkUpdateEventsToDefaultLocation } from "@calcom/lib/bulkUpdateEventsToDefaultLocation"; -export { bulkUpdateTeamEventsToDefaultLocation } from "@calcom/lib/bulkUpdateTeamEventsToDefaultLocation"; +export { bulkUpdateEventsToDefaultLocation } from "@calcom/app-store/_utils/bulkUpdateEventsToDefaultLocation"; +export { bulkUpdateTeamEventsToDefaultLocation } from "@calcom/app-store/_utils/bulkUpdateTeamEventsToDefaultLocation"; diff --git a/packages/trpc/server/routers/viewer/apps/integrations.handler.ts b/packages/trpc/server/routers/viewer/apps/integrations.handler.ts index 301955c7e9..1b5a967bde 100644 --- a/packages/trpc/server/routers/viewer/apps/integrations.handler.ts +++ b/packages/trpc/server/routers/viewer/apps/integrations.handler.ts @@ -1,4 +1,4 @@ -import { getConnectedApps } from "@calcom/lib/getConnectedApps"; +import { getConnectedApps } from "@calcom/app-store/_utils/getConnectedApps"; import { prisma } from "@calcom/prisma"; import type { TrpcSessionUser } from "@calcom/trpc/server/types"; diff --git a/packages/trpc/server/routers/viewer/eventTypes/bulkUpdateToDefaultLocation.handler.ts b/packages/trpc/server/routers/viewer/eventTypes/bulkUpdateToDefaultLocation.handler.ts index a073e04e74..bec1bba4f5 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/bulkUpdateToDefaultLocation.handler.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/bulkUpdateToDefaultLocation.handler.ts @@ -1,6 +1,8 @@ -import { bulkUpdateEventsToDefaultLocation } from "@calcom/lib/bulkUpdateEventsToDefaultLocation"; +import { bulkUpdateEventsToDefaultLocation } from "@calcom/app-store/_utils/bulkUpdateEventsToDefaultLocation"; import { prisma } from "@calcom/prisma"; +import { TRPCError } from "@trpc/server"; + import type { TrpcSessionUser } from "../../../types"; import type { TBulkUpdateToDefaultLocationInputSchema } from "./bulkUpdateToDefaultLocation.schema"; @@ -13,9 +15,19 @@ type BulkUpdateToDefaultLocationOptions = { export const bulkUpdateToDefaultLocationHandler = ({ ctx, input }: BulkUpdateToDefaultLocationOptions) => { const { eventTypeIds } = input; - return bulkUpdateEventsToDefaultLocation({ - eventTypeIds, - user: ctx.user, - prisma, - }); + try { + return bulkUpdateEventsToDefaultLocation({ + eventTypeIds, + user: ctx.user, + prisma, + }); + } catch (error) { + if (error instanceof Error) { + throw new TRPCError({ + code: "BAD_REQUEST", + message: error.message, + }); + } + throw error; + } }; diff --git a/packages/trpc/server/routers/viewer/eventTypes/heavy/create.handler.ts b/packages/trpc/server/routers/viewer/eventTypes/heavy/create.handler.ts index e20710a5c4..566ec6721c 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/heavy/create.handler.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/heavy/create.handler.ts @@ -1,7 +1,7 @@ import { Prisma } from "@prisma/client"; +import { getDefaultLocations } from "@calcom/app-store/_utils/getDefaultLocations"; import { DailyLocationType } from "@calcom/app-store/constants"; -import { getDefaultLocations } from "@calcom/lib/server/getDefaultLocations"; import { EventTypeRepository } from "@calcom/lib/server/repository/eventTypeRepository"; import type { PrismaClient } from "@calcom/prisma"; import { SchedulingType } from "@calcom/prisma/enums"; diff --git a/yarn.lock b/yarn.lock index 6c05002c5b..03d2c04486 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2715,7 +2715,7 @@ __metadata: "@axiomhq/winston": ^1.2.0 "@calcom/platform-constants": "*" "@calcom/platform-enums": "*" - "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.350" + "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.351" "@calcom/platform-types": "*" "@calcom/platform-utils": "*" "@calcom/prisma": "*" @@ -3774,13 +3774,13 @@ __metadata: languageName: unknown linkType: soft -"@calcom/platform-libraries@npm:@calcom/platform-libraries@0.0.350": - version: 0.0.350 - resolution: "@calcom/platform-libraries@npm:0.0.350" +"@calcom/platform-libraries@npm:@calcom/platform-libraries@0.0.351": + version: 0.0.351 + resolution: "@calcom/platform-libraries@npm:0.0.351" dependencies: "@calcom/features": "*" "@calcom/lib": "*" - checksum: 11c9cc5e33da21574a7b960dc488bfa989e807f020c5817c9dce0ec04ea6f74df05247ab321da99a8fd22cc82dceb5104ab4eea8fc25d70d982d6ddbff7bd848 + checksum: a0cab66796357a6fe006f3aeb782ad4dfe256a187312aa9e50287e0e8c0637c87ab289a57a660da7953bd6a6db7cec4616b981c90fbe350a4b0c1c14d2e0ef2d languageName: node linkType: hard