From 02cecd67077084ffb54e35248c9027173bb56320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Omar=20L=C3=B3pez?= Date: Wed, 13 Nov 2024 13:14:31 -0700 Subject: [PATCH] chore: Cleanup Close.com (#16929) --- apps/web/pages/api/teams/create.ts | 3 - packages/core/EventManager.ts | 2 - .../auth/signup/handlers/calcomHandler.ts | 6 - .../auth/signup/handlers/selfHostedHandler.ts | 3 - .../features/bookings/lib/handleNewBooking.ts | 19 +- packages/features/ee/teams/api/upgrade.ts | 4 - .../features/users/lib/userDeletionService.ts | 6 +- packages/lib/sync/SyncServiceManager.ts | 168 ------------------ packages/lib/sync/services/CloseComService.ts | 143 --------------- packages/lib/sync/services/index.ts | 1 - .../deleteMeWithoutPassword.handler.ts | 5 +- .../loggedInViewer/updateProfile.handler.ts | 4 - .../viewer/organizations/create.handler.ts | 3 - .../viewer/organizations/publish.handler.ts | 4 - .../viewer/organizations/update.handler.ts | 4 - .../viewer/teams/acceptOrLeave.handler.ts | 12 -- .../viewer/teams/changeMemberRole.handler.ts | 4 - .../routers/viewer/teams/create.handler.ts | 3 - .../routers/viewer/teams/update.handler.ts | 4 - 19 files changed, 7 insertions(+), 391 deletions(-) delete mode 100644 packages/lib/sync/SyncServiceManager.ts delete mode 100644 packages/lib/sync/services/CloseComService.ts diff --git a/apps/web/pages/api/teams/create.ts b/apps/web/pages/api/teams/create.ts index b0c8935839..d8665968ad 100644 --- a/apps/web/pages/api/teams/create.ts +++ b/apps/web/pages/api/teams/create.ts @@ -80,9 +80,6 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { }, }); - // Sync Services: Close.com - // closeComUpdateTeam(prevTeam, team); - // redirect to team screen res.redirect(302, `/settings/teams/${team.id}/onboard-members?event=team_created`); } diff --git a/packages/core/EventManager.ts b/packages/core/EventManager.ts index 1389cd7b8f..62dad666af 100644 --- a/packages/core/EventManager.ts +++ b/packages/core/EventManager.ts @@ -118,8 +118,6 @@ export default class EventManager { app.credentials.map((creds) => ({ ...creds, appName: app.name })) ); // This includes all calendar-related apps, traditional calendars such as Google Calendar - // (type google_calendar) and non-traditional calendars such as CRMs like Close.com - // (type closecom_other_calendar) this.calendarCredentials = appCredentials .filter( // Backwards compatibility until CRM manager is implemented diff --git a/packages/features/auth/signup/handlers/calcomHandler.ts b/packages/features/auth/signup/handlers/calcomHandler.ts index c5620274b1..ea6e4e7c1a 100644 --- a/packages/features/auth/signup/handlers/calcomHandler.ts +++ b/packages/features/auth/signup/handlers/calcomHandler.ts @@ -11,8 +11,6 @@ import { getLocaleFromRequest } from "@calcom/lib/getLocaleFromRequest"; import { HttpError } from "@calcom/lib/http-error"; import logger from "@calcom/lib/logger"; import { usernameHandler, type RequestWithUsernameStatus } from "@calcom/lib/server/username"; -import { createWebUser as syncServicesCreateWebUser } from "@calcom/lib/sync/SyncServiceManager"; -import { closeComUpsertTeamUser } from "@calcom/lib/sync/SyncServiceManager"; import { validateAndGetCorrectedUsernameAndEmail } from "@calcom/lib/validateUsername"; import { prisma } from "@calcom/prisma"; import { IdentityProvider } from "@calcom/prisma/enums"; @@ -172,8 +170,6 @@ async function handler(req: RequestWithUsernameStatus, res: NextApiResponse) { team, }); - closeComUpsertTeamUser(team, user, membership.role); - // Accept any child team invites for orgs. if (team.parent) { await joinAnyChildTeamOnOrgInvite({ @@ -210,8 +206,6 @@ async function handler(req: RequestWithUsernameStatus, res: NextApiResponse) { language: await getLocaleFromRequest(req), username: username || "", }); - // Sync Services - await syncServicesCreateWebUser(user); } if (checkoutSessionId) { diff --git a/packages/features/auth/signup/handlers/selfHostedHandler.ts b/packages/features/auth/signup/handlers/selfHostedHandler.ts index d24b750044..8f1c7ff78b 100644 --- a/packages/features/auth/signup/handlers/selfHostedHandler.ts +++ b/packages/features/auth/signup/handlers/selfHostedHandler.ts @@ -8,7 +8,6 @@ import { IS_PREMIUM_USERNAME_ENABLED } from "@calcom/lib/constants"; import logger from "@calcom/lib/logger"; import { isUsernameReservedDueToMigration } from "@calcom/lib/server/username"; import slugify from "@calcom/lib/slugify"; -import { closeComUpsertTeamUser } from "@calcom/lib/sync/SyncServiceManager"; import { validateAndGetCorrectedUsernameAndEmail } from "@calcom/lib/validateUsername"; import prisma from "@calcom/prisma"; import { IdentityProvider } from "@calcom/prisma/enums"; @@ -118,8 +117,6 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) team, }); - closeComUpsertTeamUser(team, user, membership.role); - // Accept any child team invites for orgs. if (team.parent) { await joinAnyChildTeamOnOrgInvite({ diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 404b01b255..5cc7931274 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -8,9 +8,9 @@ import { v5 as uuidv5 } from "uuid"; import processExternalId from "@calcom/app-store/_utils/calendars/processExternalId"; import { metadata as GoogleMeetMetadata } from "@calcom/app-store/googlevideo/_metadata"; import { + getLocationValueForDB, MeetLocationType, OrganizerDefaultConferencingAppType, - getLocationValueForDB, } from "@calcom/app-store/locations"; import { DailyLocationType } from "@calcom/app-store/locations"; import { getAppFromSlug } from "@calcom/app-store/utils"; @@ -60,7 +60,6 @@ import { safeStringify } from "@calcom/lib/safeStringify"; import { DistributionMethod, getLuckyUser } from "@calcom/lib/server/getLuckyUser"; import { getTranslation } from "@calcom/lib/server/i18n"; import { WorkflowRepository } from "@calcom/lib/server/repository/workflow"; -import { updateWebUser as syncServicesUpdateWebUser } from "@calcom/lib/sync/SyncServiceManager"; import { getTimeFormatStringFromUserTimeFormat } from "@calcom/lib/timeFormat"; import prisma from "@calcom/prisma"; import { BookingStatus, SchedulingType, WebhookTriggerEvents } from "@calcom/prisma/enums"; @@ -91,11 +90,11 @@ import { handleAppsStatus } from "./handleNewBooking/handleAppsStatus"; import { loadAndValidateUsers } from "./handleNewBooking/loadAndValidateUsers"; import { scheduleNoShowTriggers } from "./handleNewBooking/scheduleNoShowTriggers"; import type { - Invitee, - IEventTypePaymentCredentialType, - IsFixedAwareUser, - BookingType, Booking, + BookingType, + IEventTypePaymentCredentialType, + Invitee, + IsFixedAwareUser, } from "./handleNewBooking/types"; import { validateBookingTimeIsNotOutOfBounds } from "./handleNewBooking/validateBookingTimeIsNotOutOfBounds"; import { validateEventLength } from "./handleNewBooking/validateEventLength"; @@ -962,14 +961,6 @@ async function handler( originalRescheduledBooking, }); - // @NOTE: Add specific try catch for all subsequent async calls to avoid error - // Sync Services - await syncServicesUpdateWebUser( - await prisma.user.findFirst({ - where: { id: userId }, - select: { id: true, email: true, name: true, username: true, createdDate: true }, - }) - ); evt.uid = booking?.uid ?? null; evt.oneTimePassword = booking?.oneTimePassword ?? null; diff --git a/packages/features/ee/teams/api/upgrade.ts b/packages/features/ee/teams/api/upgrade.ts index a9ba6894ca..26eebe2a1a 100644 --- a/packages/features/ee/teams/api/upgrade.ts +++ b/packages/features/ee/teams/api/upgrade.ts @@ -8,7 +8,6 @@ import stripe from "@calcom/features/ee/payments/server/stripe"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { HttpError } from "@calcom/lib/http-error"; import { defaultHandler, defaultResponder } from "@calcom/lib/server"; -import { closeComUpdateTeam } from "@calcom/lib/sync/SyncServiceManager"; import prisma from "@calcom/prisma"; import { teamMetadataSchema } from "@calcom/prisma/zod-utils"; @@ -66,9 +65,6 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { return res.status(statusCode).json({ message }); } } - - // Sync Services: Close.com - closeComUpdateTeam(prevTeam, team); } if (!metadata) { diff --git a/packages/features/users/lib/userDeletionService.ts b/packages/features/users/lib/userDeletionService.ts index 33ac05d586..009f42c39b 100644 --- a/packages/features/users/lib/userDeletionService.ts +++ b/packages/features/users/lib/userDeletionService.ts @@ -1,7 +1,6 @@ import type { User } from "@prisma/client"; import { deleteStripeCustomer } from "@calcom/app-store/stripepayment/lib/customer"; -import { deleteWebUser as syncServicesDeleteWebUser } from "@calcom/lib/sync/SyncServiceManager"; import prisma from "@calcom/prisma"; export async function deleteUser(user: Pick) { @@ -9,12 +8,9 @@ export async function deleteUser(user: Pick) await deleteStripeCustomer(user).catch(console.warn); // Remove my account // TODO: Move this to Repository pattern. - const deletedUser = await prisma.user.delete({ + await prisma.user.delete({ where: { id: user.id, }, }); - - // Sync Services - syncServicesDeleteWebUser(deletedUser); } diff --git a/packages/lib/sync/SyncServiceManager.ts b/packages/lib/sync/SyncServiceManager.ts deleted file mode 100644 index 621c6e14aa..0000000000 --- a/packages/lib/sync/SyncServiceManager.ts +++ /dev/null @@ -1,168 +0,0 @@ -import logger from "@calcom/lib/logger"; -import type { MembershipRole } from "@calcom/prisma/enums"; - -import { safeStringify } from "../safeStringify"; -import type { ConsoleUserInfoType, TeamInfoType, WebUserInfoType } from "./ISyncService"; -import services from "./services"; -import CloseComService from "./services/CloseComService"; - -const log = logger.getSubLogger({ prefix: [`[[SyncServiceManager] `] }); - -export const createConsoleUser = async (user: ConsoleUserInfoType | null | undefined) => { - if (user) { - log.debug("createConsoleUser", safeStringify({ user })); - try { - Promise.all( - services.map(async (serviceClass) => { - const service = new serviceClass(); - if (service.ready()) { - if (service.console.user.upsert) { - await service.console.user.upsert(user); - } else { - await service.console.user.create(user); - } - } - }) - ); - } catch (e) { - log.warn("createConsoleUser", safeStringify({ error: e })); - } - } else { - log.warn("createConsoleUser:noUser", safeStringify({ user })); - } -}; - -export const createWebUser = async (user: WebUserInfoType | null | undefined) => { - if (user) { - log.debug("createWebUser", safeStringify({ user })); - try { - Promise.all( - services.map(async (serviceClass) => { - const service = new serviceClass(); - if (service.ready()) { - if (service.web.user.upsert) { - await service.web.user.upsert(user); - } else { - await service.web.user.create(user); - } - } - }) - ); - } catch (e) { - log.warn("createWebUser", safeStringify({ error: e })); - } - } else { - log.warn("createWebUser:noUser", safeStringify({ user })); - } -}; - -export const updateWebUser = async (user: WebUserInfoType | null | undefined) => { - if (user) { - log.debug("updateWebUser", safeStringify({ user })); - try { - Promise.all( - services.map(async (serviceClass) => { - const service = new serviceClass(); - if (service.ready()) { - if (service.web.user.upsert) { - await service.web.user.upsert(user); - } else { - await service.web.user.update(user); - } - } - }) - ); - } catch (e) { - log.warn("updateWebUser", safeStringify({ error: e })); - } - } else { - log.warn("updateWebUser:noUser", safeStringify({ user })); - } -}; - -export const deleteWebUser = async (user: WebUserInfoType | null | undefined) => { - if (user) { - log.debug("deleteWebUser", { user }); - try { - Promise.all( - services.map(async (serviceClass) => { - const service = new serviceClass(); - if (service.ready()) { - await service.web.user.delete(user); - } - }) - ); - } catch (e) { - log.warn("deleteWebUser", e); - } - } else { - log.warn("deleteWebUser:noUser", { user }); - } -}; - -export const closeComUpsertTeamUser = async ( - team: TeamInfoType, - user: WebUserInfoType | null | undefined, - role: MembershipRole -) => { - if (user && team && role) { - log.debug("closeComUpsertTeamUser", { team, user, role }); - try { - const closeComService = new CloseComService(); - if (closeComService.ready()) { - await closeComService.web.team.create(team, user, role); - } - } catch (e) { - log.warn("closeComUpsertTeamUser", e); - } - } else { - log.warn("closeComUpsertTeamUser:noTeamOrUserOrRole", { team, user, role }); - } -}; - -export const closeComDeleteTeam = async (team: TeamInfoType) => { - if (team) { - log.debug("closeComDeleteTeamUser", { team }); - try { - const closeComService = new CloseComService(); - if (closeComService.ready()) { - await closeComService.web.team.delete(team); - } - } catch (e) { - log.warn("closeComDeleteTeamUser", e); - } - } else { - log.warn("closeComDeleteTeamUser:noTeam"); - } -}; - -export const closeComDeleteTeamMembership = async (user: WebUserInfoType | null | undefined) => { - if (user) { - log.debug("closeComDeleteTeamMembership", { user }); - try { - const closeComService = new CloseComService(); - if (closeComService.ready()) { - await closeComService.web.membership.delete(user); - } - } catch (e) { - log.warn("closeComDeleteTeamMembership", e); - } - } else { - log.warn("closeComDeleteTeamMembership:noUser"); - } -}; - -export const closeComUpdateTeam = async (prevTeam: TeamInfoType, updatedTeam: TeamInfoType) => { - if (prevTeam && updatedTeam) { - try { - const closeComService = new CloseComService(); - if (closeComService.ready()) { - await closeComService.web.team.update(prevTeam, updatedTeam); - } - } catch (e) { - log.warn("closeComUpdateTeam", e); - } - } else { - log.warn("closeComUpdateTeam:noPrevTeamOrUpdatedTeam"); - } -}; diff --git a/packages/lib/sync/services/CloseComService.ts b/packages/lib/sync/services/CloseComService.ts deleted file mode 100644 index 9be83a643a..0000000000 --- a/packages/lib/sync/services/CloseComService.ts +++ /dev/null @@ -1,143 +0,0 @@ -import type { CloseComFieldOptions, CloseComLead } from "@calcom/lib/CloseCom"; -import CloseCom from "@calcom/lib/CloseCom"; -import { getCloseComContactIds, getCloseComLeadId, getCustomFieldsIds } from "@calcom/lib/CloseComeUtils"; -import logger from "@calcom/lib/logger"; -import type { TeamInfoType } from "@calcom/lib/sync/ISyncService"; -import SyncServiceCore from "@calcom/lib/sync/ISyncService"; -import type { ConsoleUserInfoType, WebUserInfoType } from "@calcom/lib/sync/ISyncService"; -import type ISyncService from "@calcom/lib/sync/ISyncService"; -import { MembershipRole } from "@calcom/prisma/enums"; - -// Cal.com Custom Contact Fields -const calComCustomContactFields: CloseComFieldOptions = [ - // Field name, field type, required?, multiple values? - ["Username", "text", false, false], - ["Plan", "text", true, false], - ["Last booking", "date", false, false], - ["Created at", "date", true, false], -]; - -const calComSharedFields: CloseComFieldOptions = [["Contact Role", "text", false, false]]; - -const serviceName = "closecom_service"; - -export default class CloseComService extends SyncServiceCore implements ISyncService { - protected declare service: CloseCom; - - constructor() { - super(serviceName, CloseCom, logger.getSubLogger({ prefix: [`[[sync] ${serviceName}`] })); - } - - upsertAnyUser = async ( - user: WebUserInfoType | ConsoleUserInfoType, - leadInfo?: CloseComLead, - role?: string - ) => { - this.log.debug("sync:closecom:user", { user }); - // Get Cal.com Lead - const leadId = await getCloseComLeadId(this.service, leadInfo); - this.log.debug("sync:closecom:user:leadId", { leadId }); - // Get Contacts ids: already creates contacts - const [contactId] = await getCloseComContactIds([user], this.service, leadId); - this.log.debug("sync:closecom:user:contactsIds", { contactId }); - // Get Custom Contact fields ids - const customFieldsIds = await getCustomFieldsIds("contact", calComCustomContactFields, this.service); - this.log.debug("sync:closecom:user:customFieldsIds", { customFieldsIds }); - // Get shared fields ids - const sharedFieldsIds = await getCustomFieldsIds("shared", calComSharedFields, this.service); - this.log.debug("sync:closecom:user:sharedFieldsIds", { sharedFieldsIds }); - const allFields = customFieldsIds.concat(sharedFieldsIds); - this.log.debug("sync:closecom:user:allFields", { allFields }); - const lastBooking = "email" in user ? await this.getUserLastBooking(user) : null; - this.log.debug("sync:closecom:user:lastBooking", { lastBooking }); - const username = "username" in user ? user.username : null; - // Prepare values for each Custom Contact Fields - const allFieldsValues = [ - username, // Username - user.plan, // Plan - lastBooking && lastBooking.booking - ? new Date(lastBooking.booking.createdAt).toLocaleDateString("en-US") - : null, // Last Booking - user.createdDate, - role === MembershipRole.OWNER ? "Point of Contact" : "", - ]; - this.log.debug("sync:closecom:contact:allFieldsValues", { allFieldsValues }); - // Preparing Custom Activity Instance data for Close.com - const person = Object.assign( - {}, - { - person: user, - lead_id: leadId, - contactId, - }, - ...allFields.map((fieldId: string, index: number) => { - return { - [`custom.${fieldId}`]: allFieldsValues[index], - }; - }) - ); - // Create Custom Activity type instance - return await this.service.contact.update(person); - }; - - public console = { - user: { - upsert: async (consoleUser: ConsoleUserInfoType) => { - return this.upsertAnyUser(consoleUser); - }, - }, - }; - - public web = { - user: { - upsert: async (webUser: WebUserInfoType) => { - return this.upsertAnyUser(webUser); - }, - delete: async (webUser: WebUserInfoType) => { - this.log.debug("sync:closecom:web:user:delete", { webUser }); - const [contactId] = await getCloseComContactIds([webUser], this.service); - this.log.debug("sync:closecom:web:user:delete:contactId", { contactId }); - if (contactId) { - return this.service.contact.delete(contactId); - } else { - throw Error("Web user not found in service"); - } - }, - }, - team: { - create: async (team: TeamInfoType, webUser: WebUserInfoType, role: MembershipRole) => { - return this.upsertAnyUser( - webUser, - { - companyName: team.name, - }, - role - ); - }, - delete: async (team: TeamInfoType) => { - this.log.debug("sync:closecom:web:team:delete", { team }); - const leadId = await getCloseComLeadId(this.service, { companyName: team.name }); - this.log.debug("sync:closecom:web:team:delete:leadId", { leadId }); - this.service.lead.delete(leadId); - }, - update: async (prevTeam: TeamInfoType, updatedTeam: TeamInfoType) => { - this.log.debug("sync:closecom:web:team:update", { prevTeam, updatedTeam }); - const leadId = await getCloseComLeadId(this.service, { companyName: prevTeam.name }); - this.log.debug("sync:closecom:web:team:update:leadId", { leadId }); - this.service.lead.update(leadId, { companyName: updatedTeam.name }); - }, - }, - membership: { - delete: async (webUser: WebUserInfoType) => { - this.log.debug("sync:closecom:web:membership:delete", { webUser }); - const [contactId] = await getCloseComContactIds([webUser], this.service); - this.log.debug("sync:closecom:web:membership:delete:contactId", { contactId }); - if (contactId) { - return this.service.contact.delete(contactId); - } else { - throw Error("Web user not found in service"); - } - }, - }, - }; -} diff --git a/packages/lib/sync/services/index.ts b/packages/lib/sync/services/index.ts index 256c9ba8a0..e2f9418f1a 100644 --- a/packages/lib/sync/services/index.ts +++ b/packages/lib/sync/services/index.ts @@ -2,7 +2,6 @@ import type { ISyncServices } from "../ISyncService"; import SendgridService from "./SendgridService"; const services: ISyncServices[] = [ - //CloseComService, This service gets a special treatment after deciding it shouldn't get the same treatment as Sendgrid // eslint-disable-next-line @typescript-eslint/no-explicit-any SendgridService as any, ]; diff --git a/packages/trpc/server/routers/loggedInViewer/deleteMeWithoutPassword.handler.ts b/packages/trpc/server/routers/loggedInViewer/deleteMeWithoutPassword.handler.ts index a05f2484c4..7de86213e9 100644 --- a/packages/trpc/server/routers/loggedInViewer/deleteMeWithoutPassword.handler.ts +++ b/packages/trpc/server/routers/loggedInViewer/deleteMeWithoutPassword.handler.ts @@ -1,6 +1,5 @@ import { deleteStripeCustomer } from "@calcom/app-store/stripepayment/lib/customer"; import { ErrorCode } from "@calcom/features/auth/lib/ErrorCode"; -import { deleteWebUser as syncServicesDeleteWebUser } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; import { IdentityProvider } from "@calcom/prisma/enums"; import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; @@ -33,13 +32,11 @@ export const deleteMeWithoutPasswordHandler = async ({ ctx }: DeleteMeWithoutPas await deleteStripeCustomer(user).catch(console.warn); // Remove my account - const deletedUser = await prisma.user.delete({ + await prisma.user.delete({ where: { id: ctx.user.id, }, }); - // Sync Services - syncServicesDeleteWebUser(deletedUser); return; }; diff --git a/packages/trpc/server/routers/loggedInViewer/updateProfile.handler.ts b/packages/trpc/server/routers/loggedInViewer/updateProfile.handler.ts index 20351a9a75..79534730d7 100644 --- a/packages/trpc/server/routers/loggedInViewer/updateProfile.handler.ts +++ b/packages/trpc/server/routers/loggedInViewer/updateProfile.handler.ts @@ -16,7 +16,6 @@ import { checkUsername } from "@calcom/lib/server/checkUsername"; import { updateNewTeamMemberEventTypes } from "@calcom/lib/server/queries"; import { resizeBase64Image } from "@calcom/lib/server/resizeBase64Image"; import slugify from "@calcom/lib/slugify"; -import { updateWebUser as syncServicesUpdateWebUser } from "@calcom/lib/sync/SyncServiceManager"; import { validateBookerLayouts } from "@calcom/lib/validateBookerLayouts"; import { prisma } from "@calcom/prisma"; import { userMetadata as userMetadataSchema } from "@calcom/prisma/zod-utils"; @@ -282,9 +281,6 @@ export const updateProfileHandler = async ({ ctx, input }: UpdateProfileOptions) }); } - // Sync Services - await syncServicesUpdateWebUser(updatedUser); - // Notify stripe about the change if (updatedUser && updatedUser.metadata && hasKeyInMetadata(updatedUser, "stripeCustomerId")) { const stripeCustomerId = `${updatedUser.metadata.stripeCustomerId}`; diff --git a/packages/trpc/server/routers/viewer/organizations/create.handler.ts b/packages/trpc/server/routers/viewer/organizations/create.handler.ts index ad632d16d9..2ccacb2fd7 100644 --- a/packages/trpc/server/routers/viewer/organizations/create.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/create.handler.ts @@ -314,9 +314,6 @@ export const createHandler = async ({ input, ctx }: CreateOptions) => { upId: user.profile.upId, }; } - - // Sync Services: Close.com - //closeComUpsertOrganizationUser(createTeam, ctx.user, MembershipRole.OWNER); }; export default createHandler; diff --git a/packages/trpc/server/routers/viewer/organizations/publish.handler.ts b/packages/trpc/server/routers/viewer/organizations/publish.handler.ts index d55ee14720..483f108c6a 100644 --- a/packages/trpc/server/routers/viewer/organizations/publish.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/publish.handler.ts @@ -2,7 +2,6 @@ import { getRequestedSlugError } from "@calcom/app-store/stripepayment/lib/team- import { purchaseTeamOrOrgSubscription } from "@calcom/features/ee/teams/lib/payments"; import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants"; import { isOrganisationAdmin } from "@calcom/lib/server/queries/organisations"; -import { closeComUpdateTeam } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; import { teamMetadataSchema } from "@calcom/prisma/zod-utils"; @@ -80,9 +79,6 @@ export const publishHandler = async ({ ctx }: PublishOptions) => { throw new TRPCError({ code: "INTERNAL_SERVER_ERROR", message }); } - // Sync Services: Close.com - closeComUpdateTeam(prevTeam, updatedTeam); - return { url: `${WEBAPP_URL}/settings/organization/profile`, message: "Team published successfully", diff --git a/packages/trpc/server/routers/viewer/organizations/update.handler.ts b/packages/trpc/server/routers/viewer/organizations/update.handler.ts index db279b8965..27f2e805f6 100644 --- a/packages/trpc/server/routers/viewer/organizations/update.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/update.handler.ts @@ -5,7 +5,6 @@ import { getMetadataHelpers } from "@calcom/lib/getMetadataHelpers"; import { uploadLogo } from "@calcom/lib/server/avatar"; import { isOrganisationAdmin } from "@calcom/lib/server/queries/organisations"; import { resizeBase64Image } from "@calcom/lib/server/resizeBase64Image"; -import { closeComUpdateTeam } from "@calcom/lib/sync/SyncServiceManager"; import type { PrismaClient } from "@calcom/prisma"; import { prisma } from "@calcom/prisma"; import { UserPermissionRole } from "@calcom/prisma/enums"; @@ -197,9 +196,6 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { return updatedOrganisation; }); - // Sync Services: Close.com - if (prevOrganisation) closeComUpdateTeam(prevOrganisation, updatedOrganisation); - return { update: true, userId: ctx.user.id, data: updatedOrganisation }; }; diff --git a/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts b/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts index b9663a8abc..38a64fef7b 100644 --- a/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/acceptOrLeave.handler.ts @@ -1,8 +1,6 @@ import { createAProfileForAnExistingUser } from "@calcom/lib/createAProfileForAnExistingUser"; import { updateNewTeamMemberEventTypes } from "@calcom/lib/server/queries"; -import { closeComUpsertTeamUser } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; -import { MembershipRole } from "@calcom/prisma/enums"; import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; import type { TAcceptOrLeaveInputSchema } from "./acceptOrLeave.schema"; @@ -58,15 +56,8 @@ export const acceptOrLeaveHandler = async ({ ctx, input }: AcceptOrLeaveOptions) }); } await updateNewTeamMemberEventTypes(ctx.user.id, input.teamId); - closeComUpsertTeamUser(team, ctx.user, teamMembership.role); } else { try { - //get team owner so we can alter their subscription seat count - const ownerMembership = await prisma.membership.findFirst({ - where: { teamId: input.teamId, role: MembershipRole.OWNER }, - include: { team: true }, - }); - const membership = await prisma.membership.delete({ where: { userId_teamId: { userId: ctx.user.id, teamId: input.teamId }, @@ -83,9 +74,6 @@ export const acceptOrLeaveHandler = async ({ ctx, input }: AcceptOrLeaveOptions) }, }); } - - // Sync Services: Close.com - if (ownerMembership) closeComUpsertTeamUser(ownerMembership.team, ctx.user, membership.role); } catch (e) { console.log(e); } diff --git a/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts b/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts index 267f51023b..cd5d35bd90 100644 --- a/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/changeMemberRole.handler.ts @@ -1,5 +1,4 @@ import { isTeamAdmin, isTeamOwner } from "@calcom/lib/server/queries/teams"; -import { closeComUpsertTeamUser } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; import { MembershipRole } from "@calcom/prisma/enums"; import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; @@ -68,9 +67,6 @@ export const changeMemberRoleHandler = async ({ ctx, input }: ChangeMemberRoleOp user: true, }, }); - - // Sync Services: Close.com - closeComUpsertTeamUser(membership.team, membership.user, membership.role); }; export default changeMemberRoleHandler; diff --git a/packages/trpc/server/routers/viewer/teams/create.handler.ts b/packages/trpc/server/routers/viewer/teams/create.handler.ts index 267a42b678..ffa155d781 100644 --- a/packages/trpc/server/routers/viewer/teams/create.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/create.handler.ts @@ -3,7 +3,6 @@ import { IS_TEAM_BILLING_ENABLED, WEBAPP_URL } from "@calcom/lib/constants"; import { uploadLogo } from "@calcom/lib/server/avatar"; import { ProfileRepository } from "@calcom/lib/server/repository/profile"; import { resizeBase64Image } from "@calcom/lib/server/resizeBase64Image"; -import { closeComUpsertTeamUser } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; import { MembershipRole } from "@calcom/prisma/enums"; @@ -122,8 +121,6 @@ export const createHandler = async ({ ctx, input }: CreateOptions) => { }, }); } - // Sync Services: Close.com - closeComUpsertTeamUser(createdTeam, ctx.user, MembershipRole.OWNER); return { url: `${WEBAPP_URL}/settings/teams/${createdTeam.id}/onboard-members`, diff --git a/packages/trpc/server/routers/viewer/teams/update.handler.ts b/packages/trpc/server/routers/viewer/teams/update.handler.ts index 3df840e1c5..10515e71e3 100644 --- a/packages/trpc/server/routers/viewer/teams/update.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/update.handler.ts @@ -5,7 +5,6 @@ import { validateIntervalLimitOrder } from "@calcom/lib"; import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; import { uploadLogo } from "@calcom/lib/server/avatar"; import { isTeamAdmin } from "@calcom/lib/server/queries/teams"; -import { closeComUpdateTeam } from "@calcom/lib/sync/SyncServiceManager"; import { prisma } from "@calcom/prisma"; import { RedirectType } from "@calcom/prisma/enums"; import { teamMetadataSchema } from "@calcom/prisma/zod-utils"; @@ -136,9 +135,6 @@ export const updateHandler = async ({ ctx, input }: UpdateOptions) => { }); } - // Sync Services: Close.com - if (prevTeam) closeComUpdateTeam(prevTeam, updatedTeam); - return { logoUrl: updatedTeam.logoUrl, name: updatedTeam.name,