refactor: Move OrganizationOnboardingRepository from lib to /features/organizations (#25854)
* mv organization onboarding repository * update imports
This commit is contained in:
1 parent
e394a03365
commit
9ef650ceed
11 files changed
+31
-33
No files matched your search
@@ -4,10 +4,10 @@ import { getBillingProviderService } from "@calcom/ee/billing/di/containers/Bill
|
||||
import { Plan, SubscriptionStatus } from "@calcom/features/ee/billing/repository/billing/IBillingRepository";
|
||||
import { BillingEnabledOrgOnboardingService } from "@calcom/features/ee/organizations/lib/service/onboarding/BillingEnabledOrgOnboardingService";
|
||||
import stripe from "@calcom/features/ee/payments/server/stripe";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
|
||||
import { getTeamBillingServiceFactory } from "../../di/containers/Billing";
|
||||
|
||||
@@ -1,20 +1,16 @@
|
||||
import { getBillingProviderService } from "@calcom/features/ee/billing/di/containers/Billing";
|
||||
import type { StripeBillingService } from "@calcom/features/ee/billing/service/billingProvider/StripeBillingService";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import {
|
||||
ORGANIZATION_SELF_SERVE_PRICE,
|
||||
WEBAPP_URL,
|
||||
ORG_TRIAL_DAYS,
|
||||
} from "@calcom/lib/constants";
|
||||
import { ORGANIZATION_SELF_SERVE_PRICE, WEBAPP_URL, ORG_TRIAL_DAYS } from "@calcom/lib/constants";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { ErrorWithCode } from "@calcom/lib/errors";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { OrganizationOnboarding } from "@calcom/prisma/client";
|
||||
import { UserPermissionRole, type BillingPeriod } from "@calcom/prisma/enums";
|
||||
import { userMetadata } from "@calcom/prisma/zod-utils";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { ErrorWithCode } from "@calcom/lib/errors";
|
||||
|
||||
import { OrganizationPermissionService } from "./OrganizationPermissionService";
|
||||
import type { OnboardingUser } from "./service/onboarding/types";
|
||||
|
||||
+15
-13
@@ -2,14 +2,15 @@ import type { TFunction } from "i18next";
|
||||
|
||||
import { sendOrganizationCreationEmail } from "@calcom/emails/organization-email-service";
|
||||
import { sendEmailVerification } from "@calcom/features/auth/lib/verifyEmail";
|
||||
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
|
||||
import { getOrgFullOrigin } from "@calcom/features/ee/organizations/lib/orgDomains";
|
||||
import {
|
||||
assertCanCreateOrg,
|
||||
findUserToBeOrgOwner,
|
||||
setupDomain,
|
||||
} from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
|
||||
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import { DEFAULT_SCHEDULE, getAvailabilityFromSchedule } from "@calcom/lib/availability";
|
||||
import { WEBAPP_URL } from "@calcom/lib/constants";
|
||||
@@ -17,7 +18,6 @@ import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { uploadLogo } from "@calcom/lib/server/avatar";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { isBase64Image, resizeBase64Image } from "@calcom/lib/server/resizeBase64Image";
|
||||
import slugify from "@calcom/lib/slugify";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
@@ -165,9 +165,7 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
}
|
||||
|
||||
return teams.map((team) =>
|
||||
team.id === conflictingTeam.id
|
||||
? { ...team, isBeingMigrated: true }
|
||||
: team
|
||||
team.id === conflictingTeam.id ? { ...team, isBeingMigrated: true } : team
|
||||
);
|
||||
}
|
||||
|
||||
@@ -270,7 +268,9 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
}): Promise<{ logo?: string | null; bannerUrl?: string | null }> {
|
||||
const [logo, bannerUrl] = await Promise.all([
|
||||
input.logo ? resizeBase64Image(input.logo) : Promise.resolve(input.logo),
|
||||
input.bannerUrl ? resizeBase64Image(input.bannerUrl, { maxSize: 1500 }) : Promise.resolve(input.bannerUrl),
|
||||
input.bannerUrl
|
||||
? resizeBase64Image(input.bannerUrl, { maxSize: 1500 })
|
||||
: Promise.resolve(input.bannerUrl),
|
||||
]);
|
||||
|
||||
return { logo, bannerUrl };
|
||||
@@ -308,7 +308,9 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
logoUrl?: string | null;
|
||||
bannerUrl?: string | null;
|
||||
}> {
|
||||
const uploadedLogoUrl = logoUrl ? await this.uploadImageAsset({ image: logoUrl, teamId: organizationId }) : logoUrl;
|
||||
const uploadedLogoUrl = logoUrl
|
||||
? await this.uploadImageAsset({ image: logoUrl, teamId: organizationId })
|
||||
: logoUrl;
|
||||
|
||||
const uploadedBannerUrl = bannerUrl
|
||||
? await this.uploadImageAsset({ image: bannerUrl, teamId: organizationId, isBanner: true })
|
||||
@@ -391,11 +393,11 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
|
||||
organization = {
|
||||
...orgCreationResult.organization,
|
||||
...await this.uploadOrganizationBrandAssets({
|
||||
...(await this.uploadOrganizationBrandAssets({
|
||||
logoUrl: orgData.logoUrl,
|
||||
bannerUrl: orgData.bannerUrl,
|
||||
organizationId: orgCreationResult.organization.id,
|
||||
})
|
||||
})),
|
||||
};
|
||||
|
||||
const ownerProfile = orgCreationResult.ownerProfile;
|
||||
@@ -472,11 +474,11 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
|
||||
organization = {
|
||||
...orgCreationResult.organization,
|
||||
...await this.uploadOrganizationBrandAssets({
|
||||
...(await this.uploadOrganizationBrandAssets({
|
||||
logoUrl: orgData.logoUrl,
|
||||
bannerUrl: orgData.bannerUrl,
|
||||
organizationId: orgCreationResult.organization.id,
|
||||
})
|
||||
})),
|
||||
};
|
||||
|
||||
const { ownerProfile, orgOwner: orgOwnerFromCreation } = orgCreationResult;
|
||||
@@ -616,7 +618,8 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
} else if (member.teamName) {
|
||||
targetTeamId = teamNameToId.get(member.teamName.toLowerCase());
|
||||
log.debug(
|
||||
`Member ${member.email}: teamName "${member.teamName}" -> resolved to ${targetTeamId || "not found"
|
||||
`Member ${member.email}: teamName "${member.teamName}" -> resolved to ${
|
||||
targetTeamId || "not found"
|
||||
}`
|
||||
);
|
||||
}
|
||||
@@ -758,4 +761,3 @@ export abstract class BaseOnboardingService implements IOrganizationOnboardingSe
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
|
||||
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
|
||||
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import type { Team, User } from "@calcom/prisma/client";
|
||||
import { orgOnboardingInvitedMembersSchema, orgOnboardingTeamsSchema } from "@calcom/prisma/zod-utils";
|
||||
|
||||
|
||||
+3
-3
@@ -1,12 +1,12 @@
|
||||
import { LicenseKeySingleton } from "@calcom/ee/common/server/LicenseKeyService";
|
||||
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
|
||||
import { getOrganizationRepository } from "@calcom/features/ee/organizations/di/OrganizationRepository.container";
|
||||
import { findUserToBeOrgOwner } from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { DeploymentRepository } from "@calcom/lib/server/repository/deployment";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { Team, User } from "@calcom/prisma/client";
|
||||
import { BillingPeriod } from "@calcom/prisma/enums";
|
||||
@@ -28,7 +28,7 @@ const teamsSchema = orgOnboardingTeamsSchema;
|
||||
/**
|
||||
* Handles organization onboarding when billing is disabled (self-hosted admin flow).
|
||||
*
|
||||
* Flow:
|
||||
* Flow:
|
||||
* 1. Create onboarding record
|
||||
* 2. Store teams/invites in database
|
||||
* 3. Immediately create organization, teams, and invite members
|
||||
|
||||
+2
-2
@@ -3,8 +3,8 @@ import prismock from "../../../../../../../../tests/libs/__mocks__/prisma";
|
||||
import { describe, expect, it, vi, beforeEach } from "vitest";
|
||||
|
||||
import { LicenseKeySingleton } from "@calcom/ee/common/server/LicenseKeyService";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import * as constants from "@calcom/lib/constants";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { UserPermissionRole, CreationSource, MembershipRole, BillingPeriod } from "@calcom/prisma/enums";
|
||||
import { createTeamsHandler } from "@calcom/trpc/server/routers/viewer/organizations/createTeams.handler";
|
||||
import { inviteMembersWithNoInviterPermissionCheck } from "@calcom/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler";
|
||||
@@ -13,7 +13,7 @@ import { SelfHostedOrganizationOnboardingService } from "../SelfHostedOnboarding
|
||||
import type { CreateOnboardingIntentInput, OrganizationOnboardingData } from "../types";
|
||||
|
||||
vi.mock("../../OrganizationPaymentService");
|
||||
vi.mock("@calcom/lib/server/repository/organizationOnboarding");
|
||||
vi.mock("@calcom/features/organizations/repositories/OrganizationOnboardingRepository");
|
||||
vi.mock("@calcom/ee/common/server/LicenseKeyService", () => ({
|
||||
LicenseKeySingleton: {
|
||||
getInstance: vi.fn(),
|
||||
|
||||
File renamed without changes.
@@ -1,6 +1,6 @@
|
||||
import { SelfHostedOrganizationOnboardingService } from "@calcom/features/ee/organizations/lib/service/onboarding/SelfHostedOnboardingService";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
|
||||
import { TRPCError } from "@trpc/server";
|
||||
|
||||
|
||||
+1
-1
@@ -8,9 +8,9 @@
|
||||
* - The new endpoint returns checkoutUrl directly in the response
|
||||
*/
|
||||
import { OrganizationPaymentService } from "@calcom/features/ee/organizations/lib/OrganizationPaymentService";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
|
||||
import { TRPCError } from "@trpc/server";
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
|
||||
import type { TrpcSessionUser } from "../../../types";
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ import {
|
||||
assertCanCreateOrg,
|
||||
findUserToBeOrgOwner,
|
||||
} from "@calcom/features/ee/organizations/lib/server/orgCreationUtils";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/features/organizations/repositories/OrganizationOnboardingRepository";
|
||||
import { IS_SELF_HOSTED } from "@calcom/lib/constants";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { DeploymentRepository } from "@calcom/lib/server/repository/deployment";
|
||||
import { OrganizationOnboardingRepository } from "@calcom/lib/server/repository/organizationOnboarding";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import { UserPermissionRole } from "@calcom/prisma/enums";
|
||||
|
||||
|
||||
Reference in new issue
Block a user