Skip to content

Commit 9ef650c

Browse files
authored
refactor: Move OrganizationOnboardingRepository from lib to /features/organizations (calcom#25854)
* mv organization onboarding repository * update imports
1 parent e394a03 commit 9ef650c

11 files changed

Lines changed: 31 additions & 33 deletions

File tree

packages/features/ee/billing/api/webhook/_invoice.paid.org.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { getBillingProviderService } from "@calcom/ee/billing/di/containers/Bill
44
import { Plan, SubscriptionStatus } from "@calcom/features/ee/billing/repository/billing/IBillingRepository";
55
import { BillingEnabledOrgOnboardingService } from "@calcom/features/ee/organizations/lib/service/onboarding/BillingEnabledOrgOnboardingService";
66
import stripe from "@calcom/features/ee/payments/server/stripe";
7+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
78
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
89
import logger from "@calcom/lib/logger";
910
import { safeStringify } from "@calcom/lib/safeStringify";
10-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
1111
import { prisma } from "@calcom/prisma";
1212

1313
import { getTeamBillingServiceFactory } from "../../di/containers/Billing";

packages/features/ee/organizations/lib/OrganizationPaymentService.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
import { getBillingProviderService } from "@calcom/features/ee/billing/di/containers/Billing";
22
import type { StripeBillingService } from "@calcom/features/ee/billing/service/billingProvider/StripeBillingService";
3+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
34
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
4-
import {
5-
ORGANIZATION_SELF_SERVE_PRICE,
6-
WEBAPP_URL,
7-
ORG_TRIAL_DAYS,
8-
} from "@calcom/lib/constants";
5+
import { ORGANIZATION_SELF_SERVE_PRICE, WEBAPP_URL, ORG_TRIAL_DAYS } from "@calcom/lib/constants";
6+
import { ErrorCode } from "@calcom/lib/errorCodes";
7+
import { ErrorWithCode } from "@calcom/lib/errors";
98
import logger from "@calcom/lib/logger";
109
import { safeStringify } from "@calcom/lib/safeStringify";
11-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
1210
import { prisma } from "@calcom/prisma";
1311
import type { OrganizationOnboarding } from "@calcom/prisma/client";
1412
import { UserPermissionRole, type BillingPeriod } from "@calcom/prisma/enums";
1513
import { userMetadata } from "@calcom/prisma/zod-utils";
16-
import { ErrorCode } from "@calcom/lib/errorCodes";
17-
import { ErrorWithCode } from "@calcom/lib/errors";
1814

1915
import { OrganizationPermissionService } from "./OrganizationPermissionService";
2016
import type { OnboardingUser } from "./service/onboarding/types";

packages/features/ee/organizations/lib/service/onboarding/BaseOnboardingService.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@ import type { TFunction } from "i18next";
22

33
import { sendOrganizationCreationEmail } from "@calcom/emails/organization-email-service";
44
import { sendEmailVerification } from "@calcom/features/auth/lib/verifyEmail";
5+
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
56
import { getOrgFullOrigin } from "@calcom/features/ee/organizations/lib/orgDomains";
67
import {
78
assertCanCreateOrg,
89
findUserToBeOrgOwner,
910
setupDomain,
1011
} from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
11-
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
1212
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
13+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
1314
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
1415
import { DEFAULT_SCHEDULE, getAvailabilityFromSchedule } from "@calcom/lib/availability";
1516
import { WEBAPP_URL } from "@calcom/lib/constants";
1617
import logger from "@calcom/lib/logger";
1718
import { safeStringify } from "@calcom/lib/safeStringify";
1819
import { uploadLogo } from "@calcom/lib/server/avatar";
1920
import { getTranslation } from "@calcom/lib/server/i18n";
20-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
2121
import { isBase64Image, resizeBase64Image } from "@calcom/lib/server/resizeBase64Image";
2222
import slugify from "@calcom/lib/slugify";
2323
import { prisma } from "@calcom/prisma";
@@ -165,9 +165,7 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
165165
}
166166

167167
return teams.map((team) =>
168-
team.id === conflictingTeam.id
169-
? { ...team, isBeingMigrated: true }
170-
: team
168+
team.id === conflictingTeam.id ? { ...team, isBeingMigrated: true } : team
171169
);
172170
}
173171

@@ -270,7 +268,9 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
270268
}): Promise<{ logo?: string | null; bannerUrl?: string | null }> {
271269
const [logo, bannerUrl] = await Promise.all([
272270
input.logo ? resizeBase64Image(input.logo) : Promise.resolve(input.logo),
273-
input.bannerUrl ? resizeBase64Image(input.bannerUrl, { maxSize: 1500 }) : Promise.resolve(input.bannerUrl),
271+
input.bannerUrl
272+
? resizeBase64Image(input.bannerUrl, { maxSize: 1500 })
273+
: Promise.resolve(input.bannerUrl),
274274
]);
275275

276276
return { logo, bannerUrl };
@@ -308,7 +308,9 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
308308
logoUrl?: string | null;
309309
bannerUrl?: string | null;
310310
}> {
311-
const uploadedLogoUrl = logoUrl ? await this.uploadImageAsset({ image: logoUrl, teamId: organizationId }) : logoUrl;
311+
const uploadedLogoUrl = logoUrl
312+
? await this.uploadImageAsset({ image: logoUrl, teamId: organizationId })
313+
: logoUrl;
312314

313315
const uploadedBannerUrl = bannerUrl
314316
? await this.uploadImageAsset({ image: bannerUrl, teamId: organizationId, isBanner: true })
@@ -391,11 +393,11 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
391393

392394
organization = {
393395
...orgCreationResult.organization,
394-
...await this.uploadOrganizationBrandAssets({
396+
...(await this.uploadOrganizationBrandAssets({
395397
logoUrl: orgData.logoUrl,
396398
bannerUrl: orgData.bannerUrl,
397399
organizationId: orgCreationResult.organization.id,
398-
})
400+
})),
399401
};
400402

401403
const ownerProfile = orgCreationResult.ownerProfile;
@@ -472,11 +474,11 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
472474

473475
organization = {
474476
...orgCreationResult.organization,
475-
...await this.uploadOrganizationBrandAssets({
477+
...(await this.uploadOrganizationBrandAssets({
476478
logoUrl: orgData.logoUrl,
477479
bannerUrl: orgData.bannerUrl,
478480
organizationId: orgCreationResult.organization.id,
479-
})
481+
})),
480482
};
481483

482484
const { ownerProfile, orgOwner: orgOwnerFromCreation } = orgCreationResult;
@@ -616,7 +618,8 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
616618
} else if (member.teamName) {
617619
targetTeamId = teamNameToId.get(member.teamName.toLowerCase());
618620
log.debug(
619-
`Member ${member.email}: teamName "${member.teamName}" -> resolved to ${targetTeamId || "not found"
621+
`Member ${member.email}: teamName "${member.teamName}" -> resolved to ${
622+
targetTeamId || "not found"
620623
}`
621624
);
622625
}
@@ -758,4 +761,3 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
758761
});
759762
}
760763
}
761-

packages/features/ee/organizations/lib/service/onboarding/BillingEnabledOrgOnboardingService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
21
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
2+
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
3+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
34
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
45
import logger from "@calcom/lib/logger";
56
import { safeStringify } from "@calcom/lib/safeStringify";
67
import { getTranslation } from "@calcom/lib/server/i18n";
7-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
88
import type { Team, User } from "@calcom/prisma/client";
99
import { orgOnboardingInvitedMembersSchema, orgOnboardingTeamsSchema } from "@calcom/prisma/zod-utils";
1010

packages/features/ee/organizations/lib/service/onboarding/SelfHostedOnboardingService.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { LicenseKeySingleton } from "@calcom/ee/common/server/LicenseKeyService";
2-
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
32
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
3+
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
4+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
45
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
56
import logger from "@calcom/lib/logger";
67
import { safeStringify } from "@calcom/lib/safeStringify";
78
import { getTranslation } from "@calcom/lib/server/i18n";
89
import { DeploymentRepository } from "@calcom/lib/server/repository/deployment";
9-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
1010
import { prisma } from "@calcom/prisma";
1111
import type { Team, User } from "@calcom/prisma/client";
1212
import { BillingPeriod } from "@calcom/prisma/enums";
@@ -28,7 +28,7 @@ const teamsSchema = orgOnboardingTeamsSchema;
2828
/**
2929
* Handles organization onboarding when billing is disabled (self-hosted admin flow).
3030
*
31-
* Flow:
31+
* Flow:
3232
* 1. Create onboarding record
3333
* 2. Store teams/invites in database
3434
* 3. Immediately create organization, teams, and invite members

packages/features/ee/organizations/lib/service/onboarding/__tests__/SelfHostedOnboardingService.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import prismock from "../../../../../../../../tests/libs/__mocks__/prisma";
33
import { describe, expect, it, vi, beforeEach } from "vitest";
44

55
import { LicenseKeySingleton } from "@calcom/ee/common/server/LicenseKeyService";
6+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
67
import * as constants from "@calcom/lib/constants";
7-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
88
import { UserPermissionRole, CreationSource, MembershipRole, BillingPeriod } from "@calcom/prisma/enums";
99
import { createTeamsHandler } from "@calcom/trpc/server/routers/viewer/organizations/createTeams.handler";
1010
import { inviteMembersWithNoInviterPermissionCheck } from "@calcom/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler";
@@ -13,7 +13,7 @@ import { SelfHostedOrganizationOnboardingService } from "../SelfHostedOnboarding
1313
import type { CreateOnboardingIntentInput, OrganizationOnboardingData } from "../types";
1414

1515
vi.mock("../../OrganizationPaymentService");
16-
vi.mock("@calcom/lib/server/repository/organizationOnboarding");
16+
vi.mock("@calcom/features/organizations/repositories/OrganizationOnboardingRepository");
1717
vi.mock("@calcom/ee/common/server/LicenseKeyService", () => ({
1818
LicenseKeySingleton: {
1919
getInstance: vi.fn(),

packages/lib/server/repository/organizationOnboarding.ts renamed to packages/features/organizations/repositories/OrganizationOnboardingRepository.ts

File renamed without changes.

packages/trpc/server/routers/viewer/organizations/createSelfHosted.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { SelfHostedOrganizationOnboardingService } from "@calcom/features/ee/organizations/lib/service/onboarding/SelfHostedOnboardingService";
2+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
23
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
3-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
44

55
import { TRPCError } from "@trpc/server";
66

packages/trpc/server/routers/viewer/organizations/createWithPaymentIntent.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
* - The new endpoint returns checkoutUrl directly in the response
99
*/
1010
import { OrganizationPaymentService } from "@calcom/features/ee/organizations/lib/OrganizationPaymentService";
11+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
1112
import logger from "@calcom/lib/logger";
1213
import { safeStringify } from "@calcom/lib/safeStringify";
13-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
1414

1515
import { TRPCError } from "@trpc/server";
1616

packages/trpc/server/routers/viewer/organizations/getOrganizationOnboarding.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
1+
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
22

33
import type { TrpcSessionUser } from "../../../types";
44

0 commit comments

Comments
 (0)