refactor: Remove circular deps between @calcom/lib and @calcom/features [2] (#24438)
* move SystemField to features * migrate workflow service * merge two tests for team repository * update imports and migrate team repository * migrate delegation credential repository * migrate credential repository * migrate entityPermissionUtils * migrate hashedLink service and repository * migrate membership service * update imports * remove file * migrate buildEventUrlFromBooking * migrate getAllUserBookings to features * update imports * update organizationMock * migrate slots * migrate date-ranges to schedules dir * migrate getAggregatedAvailability * fix * refactor * migrate useCreateEventType hook to features * migrate assignValueToUser * migrate validateUsername to auth features * migrate system field back to lib * migrate getLabelValueMapFromResponses back to lib * update imports * use relative path * fix type checks * fix * fix * fix tests * update gh codeowners * fix * fix
This commit is contained in:
+4
-4
@@ -24,10 +24,10 @@
|
||||
/packages/embeds/**/* @calcom/Foundation
|
||||
/packages/features/auth/lib/next-auth-options.ts @calcom/Foundation
|
||||
/packages/features/bookings/lib/**/* @calcom/Foundation
|
||||
/packages/lib/getAggregatedAvailability.ts @calcom/Foundation
|
||||
/packages/lib/getUserAvailability.ts @calcom/Foundation
|
||||
/packages/lib/server/getLuckyUser.ts @calcom/Foundation
|
||||
/packages/lib/slots.ts @calcom/Foundation
|
||||
/packages/features/availability/lib/getAggregatedAvailability/getAggregatedAvailability.ts @calcom/Foundation
|
||||
/packages/features/availability/lib/getUserAvailability.ts @calcom/Foundation
|
||||
/packages/features/bookings/lib/getLuckyUser.ts @calcom/Foundation
|
||||
/packages/features/schedules/lib/slots.ts @calcom/Foundation
|
||||
/packages/platform/atoms/**/*WebWrapper.tsx @calcom/Consumer
|
||||
/packages/platform/**/* @calcom/Platform @calcom/Foundation
|
||||
/packages/prisma/**/* @calcom/Foundation
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { NextApiRequest } from "next";
|
||||
|
||||
import { purchaseTeamOrOrgSubscription } from "@calcom/features/ee/teams/lib/payments";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import { getTeamEventType } from "@calcom/features/eventtypes/lib/getTeamEventTy
|
||||
import { FeaturesRepository } from "@calcom/features/flags/features.repository";
|
||||
import { NEXTJS_CACHE_TTL } from "@calcom/lib/constants";
|
||||
import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
|
||||
@@ -4,7 +4,7 @@ import { unstable_cache } from "next/cache";
|
||||
|
||||
import { TeamsListing } from "@calcom/features/ee/teams/components/TeamsListing";
|
||||
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { TeamService } from "@calcom/features/ee/teams/services/teamService";
|
||||
import prisma from "@calcom/prisma";
|
||||
import { MembershipRole } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
import type { NextRequest } from "next/server";
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { DelegationCredentialRepository } from "@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { DelegationCredentialRepository } from "@calcom/lib/server/repository/delegationCredential";
|
||||
|
||||
import { defaultResponderForAppDir } from "../../defaultResponderForAppDir";
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import { findUniqueDelegationCalendarCredential } from "@calcom/app-store/delega
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
|
||||
import type { CredentialForCalendarServiceWithEmail } from "@calcom/types/Credential";
|
||||
import type { Ensure } from "@calcom/types/utils";
|
||||
|
||||
@@ -8,12 +8,12 @@ import type { GetBookingType } from "@calcom/features/bookings/lib/get-booking";
|
||||
import { orgDomainConfig } from "@calcom/features/ee/organizations/lib/orgDomains";
|
||||
import { EventRepository } from "@calcom/features/eventtypes/repositories/EventRepository";
|
||||
import { FeaturesRepository } from "@calcom/features/flags/features.repository";
|
||||
import { HashedLinkService } from "@calcom/features/hashedLink/services/hashedLinkService";
|
||||
import {
|
||||
shouldHideBrandingForTeamEvent,
|
||||
shouldHideBrandingForUserEvent,
|
||||
} from "@calcom/features/profile/lib/hideBranding";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import { HashedLinkService } from "@calcom/lib/server/service/hashedLinkService";
|
||||
import slugify from "@calcom/lib/slugify";
|
||||
import prisma from "@calcom/prisma";
|
||||
import { RedirectType } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { organizationScenarios } from "@calcom/lib/server/repository/__mocks__/organization";
|
||||
import { organizationScenarios } from "@calcom/features/ee/organizations/__mocks__/organizationMock";
|
||||
|
||||
import { describe, it, expect, beforeEach, vi } from "vitest";
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@ import { URLSearchParams } from "url";
|
||||
import { z } from "zod";
|
||||
|
||||
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
|
||||
import { buildEventUrlFromBooking } from "@calcom/features/bookings/lib/buildEventUrlFromBooking";
|
||||
import { determineReschedulePreventionRedirect } from "@calcom/features/bookings/lib/reschedule/determineReschedulePreventionRedirect";
|
||||
import { getDefaultEvent } from "@calcom/features/eventtypes/lib/defaultEvents";
|
||||
import { buildEventUrlFromBooking } from "@calcom/lib/bookings/buildEventUrlFromBooking";
|
||||
import { maybeGetBookingUidFromSeat } from "@calcom/lib/server/maybeGetBookingUidFromSeat";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import { maybeGetBookingUidFromSeat } from "@calcom/lib/server/maybeGetBookingUidFromSeat";
|
||||
import prisma, { bookingMinimalSelect } from "@calcom/prisma";
|
||||
|
||||
const querySchema = z.object({
|
||||
|
||||
@@ -24,9 +24,13 @@ import {
|
||||
import { Price } from "@calcom/features/bookings/components/event-meta/Price";
|
||||
import { getCalendarLinks, CalendarLinkType } from "@calcom/features/bookings/lib/getCalendarLinks";
|
||||
import { RATING_OPTIONS, validateRating } from "@calcom/features/bookings/lib/rating";
|
||||
import {
|
||||
SMS_REMINDER_NUMBER_FIELD,
|
||||
SystemField,
|
||||
TITLE_FIELD,
|
||||
} from "@calcom/lib/bookings/SystemField";
|
||||
import type { nameObjectSchema } from "@calcom/features/eventtypes/lib/eventNaming";
|
||||
import { getEventName } from "@calcom/features/eventtypes/lib/eventNaming";
|
||||
import { SMS_REMINDER_NUMBER_FIELD, SystemField, TITLE_FIELD } from "@calcom/lib/SystemField";
|
||||
import { APP_NAME } from "@calcom/lib/constants";
|
||||
import { formatToLocalizedDate, formatToLocalizedTime, formatToLocalizedTimezone } from "@calcom/lib/dayjs";
|
||||
import useGetBrandingColours from "@calcom/lib/getBrandColours";
|
||||
@@ -767,7 +771,7 @@ export default function Success(props: PageProps) {
|
||||
<Fragment key={field.name}>
|
||||
<div
|
||||
className="text-emphasis mt-4 font-medium"
|
||||
// eslint-disable-next-line react/no-danger
|
||||
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: markdownToSafeHTML(label),
|
||||
}}
|
||||
@@ -1080,7 +1084,7 @@ export default function Success(props: PageProps) {
|
||||
<span className="underline">
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://cal.com/blog/google-s-new-spam-policy-may-be-affecting-your-invitations">
|
||||
href="https://cal.com/blog/google-s-new-spam-policy-may-be-affecting-your-invitations" rel="noreferrer">
|
||||
{t("resolve")}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
@@ -4,8 +4,8 @@ import { useRouter } from "next/navigation";
|
||||
|
||||
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
|
||||
import { TeamEventTypeForm } from "@calcom/features/ee/teams/components/TeamEventTypeForm";
|
||||
import { useCreateEventType } from "@calcom/features/eventtypes/hooks/useCreateEventType";
|
||||
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
|
||||
import { useCreateEventType } from "@calcom/lib/hooks/useCreateEventType";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { trpc } from "@calcom/trpc/react";
|
||||
import { Button } from "@calcom/ui/components/button";
|
||||
|
||||
@@ -60,7 +60,7 @@ vi.mock("@calcom/features/bookings/components/event-meta/Price", () => {
|
||||
return {};
|
||||
});
|
||||
|
||||
vi.mock("@calcom/lib/SystemField", () => {
|
||||
vi.mock("@calcom/lib/bookings/SystemField", () => {
|
||||
return {};
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
import type { UserProfile } from "@calcom/types/UserProfile";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { isInMemoryDelegationCredential } from "@calcom/lib/delegationCredential";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import type { CredentialForCalendarService } from "@calcom/types/Credential";
|
||||
|
||||
import { getTokenObjectFromCredential } from "./getTokenObjectFromCredential";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type z from "zod";
|
||||
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { GetServerSidePropsContext } from "next";
|
||||
import { z } from "zod";
|
||||
|
||||
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
|
||||
import { btcpayCredentialKeysSchema } from "../../lib/btcpayCredentialKeysSchema";
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import { describe, it, expect, beforeEach, vi } from "vitest";
|
||||
|
||||
import { metadata as googleCalendarMetadata } from "@calcom/app-store/googlecalendar/_metadata";
|
||||
import { metadata as googleMeetMetadata } from "@calcom/app-store/googlevideo/_metadata";
|
||||
import type { ServiceAccountKey } from "@calcom/lib/server/repository/delegationCredential";
|
||||
import { DelegationCredentialRepository } from "@calcom/lib/server/repository/delegationCredential";
|
||||
import type { ServiceAccountKey } from "@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository";
|
||||
import { DelegationCredentialRepository } from "@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository";
|
||||
import { OrganizationRepository } from "@calcom/features/ee/organizations/repositories/OrganizationRepository";
|
||||
import { SMSLockState, RRTimestampBasis } from "@calcom/prisma/enums";
|
||||
import type { CredentialForCalendarService, CredentialPayload } from "@calcom/types/Credential";
|
||||
@@ -28,7 +28,7 @@ vi.mock("@calcom/features/ee/organizations/repositories/OrganizationRepository",
|
||||
}));
|
||||
|
||||
// Mock DelegationCredentialRepository
|
||||
vi.mock("@calcom/lib/server/repository/delegationCredential", () => ({
|
||||
vi.mock("@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository", () => ({
|
||||
DelegationCredentialRepository: {
|
||||
findUniqueByOrgMemberEmailIncludeSensitiveServiceAccountKey: vi.fn(),
|
||||
findUniqueByOrganizationIdAndDomainIncludeSensitiveServiceAccountKey: vi.fn(),
|
||||
|
||||
@@ -10,9 +10,9 @@ import {
|
||||
} from "@calcom/lib/delegationCredential";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import type { ServiceAccountKey } from "@calcom/lib/server/repository/delegationCredential";
|
||||
import { DelegationCredentialRepository } from "@calcom/lib/server/repository/delegationCredential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import type { ServiceAccountKey } from "@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository";
|
||||
import { DelegationCredentialRepository } from "@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { SelectedCalendar } from "@calcom/prisma/client";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Dub } from "dub-package";
|
||||
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import type { AnalyticsService, SendEventProps } from "@calcom/types/AnalyticsService";
|
||||
import type { CredentialPayload } from "@calcom/types/Credential";
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import { defaultHandler } from "@calcom/lib/server/defaultHandler";
|
||||
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { Prisma } from "@calcom/prisma/client";
|
||||
|
||||
import getInstalledAppPath from "../../_utils/getInstalledAppPath";
|
||||
|
||||
@@ -7,8 +7,8 @@ import type {
|
||||
SimplePublicObjectInput,
|
||||
} from "@hubspot/api-client/lib/codegen/crm/objects/meetings";
|
||||
|
||||
import getLabelValueMapFromResponses from "@calcom/features/bookings/lib/getLabelValueMapFromResponses";
|
||||
import { getLocation } from "@calcom/lib/CalEventParser";
|
||||
import getLabelValueMapFromResponses from "@calcom/lib/bookings/getLabelValueMapFromResponses";
|
||||
import { WEBAPP_URL } from "@calcom/lib/constants";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import logger from "@calcom/lib/logger";
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import type { NextApiRequest, NextApiResponse } from "next";
|
||||
import { getSession } from "next-auth/react";
|
||||
|
||||
import {
|
||||
entityPrismaWhereClause,
|
||||
canEditEntity,
|
||||
} from "@calcom/features/pbac/lib/entityPermissionUtils.server";
|
||||
import { sanitizeValue } from "@calcom/lib/csvUtils";
|
||||
import { entityPrismaWhereClause, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { App_RoutingForms_Form } from "@calcom/prisma/client";
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ import { prisma } from "@calcom/prisma/__mocks__/prisma";
|
||||
|
||||
import { describe, it, vi, expect, beforeEach, afterEach } from "vitest";
|
||||
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks";
|
||||
import { sendGenericWebhookPayload } from "@calcom/features/webhooks/lib/sendPayload";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import {
|
||||
WebhookTriggerEvents,
|
||||
WorkflowTriggerEvents,
|
||||
@@ -37,7 +37,7 @@ vi.mock("@calcom/features/tasker", () => {
|
||||
});
|
||||
|
||||
// Mock workflow dependencies
|
||||
vi.mock("@calcom/lib/server/service/workflows", () => ({
|
||||
vi.mock("@calcom/features/ee/workflows/lib/service/WorkflowService", () => ({
|
||||
WorkflowService: {
|
||||
getAllWorkflowsFromRoutingForm: vi.fn(() => Promise.resolve([])),
|
||||
scheduleFormWorkflows: vi.fn(() => Promise.resolve()),
|
||||
|
||||
@@ -6,7 +6,7 @@ import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { withReporting } from "@calcom/lib/sentryWrapper";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
import type { App_RoutingForms_Form, User } from "@calcom/prisma/client";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { z } from "zod";
|
||||
|
||||
import { entityPrismaWhereClause } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import { entityPrismaWhereClause } from "@calcom/features/pbac/lib/entityPermissionUtils.server";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import type { App_RoutingForms_Form } from "@calcom/prisma/client";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { canCreateEntity, canEditEntity } from "@calcom/lib/entityPermissionUtils.server";
|
||||
import { canCreateEntity, canEditEntity } from "@calcom/features/pbac/lib/entityPermissionUtils.server";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { App_RoutingForms_Form, User } from "@calcom/prisma/client";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
|
||||
import { routingFormIncompleteBookingDataSchema } from "../../zod";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
|
||||
import type { AttributeRoutingConfig } from "../../routing-forms/types/types";
|
||||
import SalesforceCRMService from "./CrmService";
|
||||
|
||||
@@ -4,7 +4,7 @@ import { describe, it, expect, vi, beforeEach } from "vitest";
|
||||
|
||||
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
|
||||
import { WEBAPP_URL } from "@calcom/lib/constants";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { MembershipRole } from "@calcom/prisma/enums";
|
||||
|
||||
import {
|
||||
@@ -18,7 +18,7 @@ import { validateAuthentication, buildReturnUrl } from "../portal";
|
||||
|
||||
// Mock dependencies
|
||||
vi.mock("@calcom/features/pbac/services/permission-check.service");
|
||||
vi.mock("@calcom/lib/server/repository/team");
|
||||
vi.mock("@calcom/features/ee/teams/repositories/TeamRepository");
|
||||
vi.mock("../../lib/customer");
|
||||
vi.mock("../../lib/server");
|
||||
vi.mock("../../lib/subscriptions");
|
||||
|
||||
@@ -4,7 +4,7 @@ import { PermissionCheckService } from "@calcom/features/pbac/services/permissio
|
||||
import { WEBAPP_URL } from "@calcom/lib/constants";
|
||||
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
import stripe from "../../server";
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
import type { BillingPortalService } from "../base/BillingPortalService";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { TFunction } from "i18next";
|
||||
|
||||
import getLabelValueMapFromResponses from "@calcom/features/bookings/lib/getLabelValueMapFromResponses";
|
||||
import getLabelValueMapFromResponses from "@calcom/lib/bookings/getLabelValueMapFromResponses";
|
||||
import type { CalendarEvent } from "@calcom/types/Calendar";
|
||||
|
||||
import { Info } from "./Info";
|
||||
|
||||
@@ -32,7 +32,7 @@ import logger from "@calcom/lib/logger";
|
||||
import { randomString } from "@calcom/lib/random";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { hashEmail } from "@calcom/lib/server/PiiHasher";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { DeploymentRepository } from "@calcom/lib/server/repository/deployment";
|
||||
import { OrganizationRepository } from "@calcom/features/ee/organizations/repositories/OrganizationRepository";
|
||||
import { ProfileRepository } from "@calcom/features/profile/repositories/ProfileRepository";
|
||||
|
||||
@@ -6,6 +6,7 @@ import { getLocaleFromRequest } from "@calcom/features/auth/lib/getLocaleFromReq
|
||||
import { sendEmailVerification } from "@calcom/features/auth/lib/verifyEmail";
|
||||
import { createOrUpdateMemberships } from "@calcom/features/auth/signup/utils/createOrUpdateMemberships";
|
||||
import { prefillAvatar } from "@calcom/features/auth/signup/utils/prefillAvatar";
|
||||
import { validateAndGetCorrectedUsernameAndEmail } from "@calcom/features/auth/signup/utils/validateUsername";
|
||||
import { StripeBillingService } from "@calcom/features/ee/billing/stripe-billing-service";
|
||||
import { sentrySpan } from "@calcom/features/watchlist/lib/telemetry";
|
||||
import { checkIfEmailIsBlockedInWatchlistController } from "@calcom/features/watchlist/operations/check-if-email-in-watchlist.controller";
|
||||
@@ -15,7 +16,6 @@ import { HttpError } from "@calcom/lib/http-error";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import type { CustomNextApiHandler } from "@calcom/lib/server/username";
|
||||
import { usernameHandler } from "@calcom/lib/server/username";
|
||||
import { validateAndGetCorrectedUsernameAndEmail } from "@calcom/lib/validateUsername";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import { CreationSource } from "@calcom/prisma/enums";
|
||||
import { IdentityProvider } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -3,12 +3,12 @@ import { NextResponse } from "next/server";
|
||||
import { checkPremiumUsername } from "@calcom/ee/common/lib/checkPremiumUsername";
|
||||
import { sendEmailVerification } from "@calcom/features/auth/lib/verifyEmail";
|
||||
import { createOrUpdateMemberships } from "@calcom/features/auth/signup/utils/createOrUpdateMemberships";
|
||||
import { validateAndGetCorrectedUsernameAndEmail } from "@calcom/features/auth/signup/utils/validateUsername";
|
||||
import { hashPassword } from "@calcom/lib/auth/hashPassword";
|
||||
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 { validateAndGetCorrectedUsernameAndEmail } from "@calcom/lib/validateUsername";
|
||||
import prisma from "@calcom/prisma";
|
||||
import { IdentityProvider } from "@calcom/prisma/enums";
|
||||
import { signupSchema } from "@calcom/prisma/zod-utils";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { validateAndGetCorrectedUsernameInTeam } from "@calcom/features/auth/signup/utils/validateUsername";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import { validateAndGetCorrectedUsernameInTeam } from "@calcom/lib/validateUsername";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
|
||||
export async function findTokenByToken({ token }: { token: string }) {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { DateRange } from "@calcom/lib/date-ranges";
|
||||
import type { DateRange } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { IntervalTree, ContainmentSearchAlgorithm, createIntervalNodes } from "@calcom/lib/intervalTree";
|
||||
|
||||
/**
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import type { DateRange } from "@calcom/lib/date-ranges";
|
||||
import type { DateRange } from "@calcom/features/schedules/lib/date-ranges";
|
||||
|
||||
import { mergeOverlappingDateRanges } from "./mergeOverlappingDateRanges";
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { DateRange } from "@calcom/lib/date-ranges";
|
||||
import type { DateRange } from "@calcom/features/schedules/lib/date-ranges";
|
||||
|
||||
export function mergeOverlappingDateRanges(dateRanges: DateRange[]) {
|
||||
dateRanges.sort((a, b) => a.start.valueOf() - b.start.valueOf());
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
import type { DateRange } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { intersect } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { DEFAULT_GROUP_ID } from "@calcom/lib/constants";
|
||||
import type { DateRange } from "@calcom/lib/date-ranges";
|
||||
import { intersect } from "@calcom/lib/date-ranges";
|
||||
import { SchedulingType } from "@calcom/prisma/enums";
|
||||
|
||||
import { filterRedundantDateRanges } from "./getAggregatedAvailability/date-range-utils/filterRedundantDateRanges";
|
||||
import { mergeOverlappingDateRanges } from "./getAggregatedAvailability/date-range-utils/mergeOverlappingDateRanges";
|
||||
import { filterRedundantDateRanges } from "./date-range-utils/filterRedundantDateRanges";
|
||||
import { mergeOverlappingDateRanges } from "./date-range-utils/mergeOverlappingDateRanges";
|
||||
|
||||
function uniqueAndSortedDateRanges(ranges: DateRange[]): DateRange[] {
|
||||
const seen = new Set<string>();
|
||||
@@ -12,9 +12,9 @@ import {
|
||||
import { getBusyTimesService } from "@calcom/features/di/containers/BusyTimes";
|
||||
import { EventTypeRepository } from "@calcom/features/eventtypes/repositories/eventTypeRepository";
|
||||
import type { IRedisService } from "@calcom/features/redis/IRedisService";
|
||||
import type { DateOverride, WorkingHours } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { buildDateRanges, subtract } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { getWorkingHours } from "@calcom/lib/availability";
|
||||
import type { DateOverride, WorkingHours } from "@calcom/lib/date-ranges";
|
||||
import { buildDateRanges, subtract } from "@calcom/lib/date-ranges";
|
||||
import { stringToDayjsZod } from "@calcom/lib/dayjs";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
@@ -641,9 +641,9 @@ export class UserAvailabilityService {
|
||||
// you can obtain that from user availability defined outside of here
|
||||
fromUser: { id: user.id, displayName: user.name },
|
||||
// optional chaining destructuring toUser
|
||||
toUser: !!toUser ? { id: toUser.id, displayName: toUser.name, username: toUser.username } : null,
|
||||
reason: !!reason ? reason.reason : null,
|
||||
emoji: !!reason ? reason.emoji : null,
|
||||
toUser: toUser ? { id: toUser.id, displayName: toUser.name, username: toUser.username } : null,
|
||||
reason: reason ? reason.reason : null,
|
||||
emoji: reason ? reason.emoji : null,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import getLocationOptionsForSelect from "@calcom/features/bookings/lib/getLocati
|
||||
import { FormBuilderField } from "@calcom/features/form-builder/FormBuilderField";
|
||||
import { fieldTypesConfigMap } from "@calcom/features/form-builder/fieldTypes";
|
||||
import { fieldsThatSupportLabelAsSafeHtml } from "@calcom/features/form-builder/fieldsThatSupportLabelAsSafeHtml";
|
||||
import { SystemField } from "@calcom/lib/SystemField";
|
||||
import { SystemField } from "@calcom/lib/bookings/SystemField";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { markdownToSafeHTML } from "@calcom/lib/markdownToSafeHTML";
|
||||
import type { RouterOutputs } from "@calcom/trpc/react";
|
||||
|
||||
@@ -24,7 +24,7 @@ import {
|
||||
getPiiFreeCalendarEvent,
|
||||
} from "@calcom/lib/piiFreeData";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { DestinationCalendar, BookingReference } from "@calcom/prisma/client";
|
||||
import { createdEventSchema } from "@calcom/prisma/zod-utils";
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
import { getBookerBaseUrl } from "@calcom/features/ee/organizations/lib/getBookerUrlServer";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
|
||||
import logger from "../logger";
|
||||
|
||||
type BookingEventType = {
|
||||
slug: string;
|
||||
team: {
|
||||
@@ -3,7 +3,7 @@ import type { z } from "zod";
|
||||
import {
|
||||
SMS_REMINDER_NUMBER_FIELD,
|
||||
CAL_AI_AGENT_PHONE_NUMBER_FIELD,
|
||||
} from "@calcom/lib/SystemField";
|
||||
} from "@calcom/lib/bookings/SystemField";
|
||||
import type { Workflow } from "@calcom/features/ee/workflows/lib/types";
|
||||
import { fieldsThatSupportLabelAsSafeHtml } from "@calcom/features/form-builder/fieldsThatSupportLabelAsSafeHtml";
|
||||
import { getFieldIdentifier } from "@calcom/features/form-builder/utils/getFieldIdentifier";
|
||||
|
||||
@@ -2,7 +2,8 @@ import { isValidPhoneNumber } from "libphonenumber-js";
|
||||
import z from "zod";
|
||||
|
||||
import type { ALL_VIEWS } from "@calcom/features/form-builder/schema";
|
||||
import { dbReadResponseSchema, fieldTypesSchemaMap } from "@calcom/features/form-builder/schema";
|
||||
import { fieldTypesSchemaMap } from "@calcom/features/form-builder/schema";
|
||||
import { dbReadResponseSchema } from "@calcom/lib/dbReadResponseSchema";
|
||||
import type { eventTypeBookingFields } from "@calcom/prisma/zod-utils";
|
||||
import { bookingResponses, emailSchemaRefinement } from "@calcom/prisma/zod-utils";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type z from "zod";
|
||||
|
||||
import { SystemField } from "@calcom/lib/SystemField";
|
||||
import { SystemField } from "@calcom/lib/bookings/SystemField";
|
||||
import type { bookingResponsesDbSchema } from "@calcom/features/bookings/lib/getBookingResponsesSchema";
|
||||
import { contructEmailFromPhoneNumber } from "@calcom/lib/contructEmailFromPhoneNumber";
|
||||
import { getBookingWithResponses } from "@calcom/lib/getBooking";
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { FormResponse, Fields } from "@calcom/app-store/routing-forms/types
|
||||
import { zodRoutes } from "@calcom/app-store/routing-forms/zod";
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { getBusyCalendarTimes } from "@calcom/features/calendars/lib/CalendarManager";
|
||||
import { mergeOverlappingRanges } from "@calcom/lib/date-ranges";
|
||||
import { mergeOverlappingRanges } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { raqbQueryValueSchema } from "@calcom/lib/raqb/zod";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
|
||||
@@ -6,7 +6,7 @@ import sendPayload from "@calcom/features/webhooks/lib/sendOrSchedulePayload";
|
||||
import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
import { WebhookTriggerEvents, WorkflowTriggerEvents } from "@calcom/prisma/enums";
|
||||
import type { EventTypeMetadata } from "@calcom/prisma/zod-utils";
|
||||
|
||||
@@ -18,7 +18,7 @@ import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
|
||||
import { getTeamIdFromEventType } from "@calcom/lib/getTeamIdFromEventType";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
import type { SchedulingType } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -70,8 +70,8 @@ import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import type { PrismaAttributeRepository as AttributeRepository } from "@calcom/lib/server/repository/PrismaAttributeRepository";
|
||||
import type { HostRepository } from "@calcom/lib/server/repository/host";
|
||||
import type { PrismaOOORepository as OooRepository } from "@calcom/lib/server/repository/ooo";
|
||||
import { HashedLinkService } from "@calcom/lib/server/service/hashedLinkService";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { HashedLinkService } from "@calcom/features/hashedLink/services/hashedLinkService";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import { getTimeFormatStringFromUserTimeFormat } from "@calcom/lib/timeFormat";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import type { DestinationCalendar, Prisma, User, AssignmentReasonEnum } from "@calcom/prisma/client";
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { Logger } from "tslog";
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import type { Dayjs } from "@calcom/dayjs";
|
||||
import { checkForConflicts } from "@calcom/features/bookings/lib/conflictChecker/checkForConflicts";
|
||||
import { buildDateRanges } from "@calcom/lib/date-ranges";
|
||||
import { buildDateRanges } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { getBusyTimesService } from "@calcom/features/di/containers/BusyTimes";
|
||||
import { getUserAvailabilityService } from "@calcom/features/di/containers/GetUserAvailability";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
|
||||
@@ -4,7 +4,7 @@ import { handleWebhookTrigger } from "@calcom/features/bookings/lib/handleWebhoo
|
||||
import type { EventPayloadType } from "@calcom/features/webhooks/lib/sendPayload";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import prisma from "@calcom/prisma";
|
||||
import { BookingStatus } from "@calcom/prisma/enums";
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ import { sendNoShowFeeChargedEmail } from "@calcom/emails";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { ErrorWithCode } from "@calcom/lib/errors";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
|
||||
import { handleNoShowFee } from "./handleNoShowFee";
|
||||
|
||||
@@ -30,7 +30,7 @@ vi.mock("@calcom/lib/server/i18n", () => ({
|
||||
getTranslation: vi.fn().mockResolvedValue((key: string) => key),
|
||||
}));
|
||||
|
||||
vi.mock("@calcom/lib/server/repository/credential", () => ({
|
||||
vi.mock("@calcom/features/credentials/repositories/CredentialRepository", () => ({
|
||||
CredentialRepository: {
|
||||
findPaymentCredentialByAppIdAndUserIdOrTeamId: vi.fn(),
|
||||
findPaymentCredentialByAppIdAndTeamId: vi.fn(),
|
||||
@@ -43,7 +43,7 @@ vi.mock("@calcom/features/membership/repositories/MembershipRepository", () => (
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("@calcom/lib/server/repository/team", () => ({
|
||||
vi.mock("@calcom/features/ee/teams/repositories/TeamRepository", () => ({
|
||||
TeamRepository: vi.fn().mockImplementation(() => ({
|
||||
findParentOrganizationByTeamId: vi.fn(),
|
||||
})),
|
||||
|
||||
@@ -7,9 +7,9 @@ import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { ErrorWithCode } from "@calcom/lib/errors";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
import type { CalendarEvent } from "@calcom/types/Calendar";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { getBusyCalendarTimes } from "@calcom/features/calendars/lib/CalendarManager";
|
||||
import { getDefinedBufferTimes } from "@calcom/features/eventtypes/lib/getDefinedBufferTimes";
|
||||
import { subtract } from "@calcom/lib/date-ranges";
|
||||
import { subtract } from "@calcom/features/schedules/lib/date-ranges";
|
||||
import { stringToDayjs } from "@calcom/lib/dayjs";
|
||||
import { intervalLimitKeyToUnit } from "@calcom/lib/intervalLimits/intervalLimit";
|
||||
import type { IntervalLimit } from "@calcom/lib/intervalLimits/intervalLimitSchema";
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
import { describe, test, expect, beforeEach } from "vitest";
|
||||
|
||||
import { PrismaAppRepository } from "@calcom/features/apps/repository/PrismaAppRepository";
|
||||
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
|
||||
import { CredentialRepository } from "@calcom/features/credentials/repositories/CredentialRepository";
|
||||
import { DestinationCalendarRepository } from "@calcom/lib/server/repository/destinationCalendar";
|
||||
import { EventTypeRepository } from "@calcom/features/eventtypes/repositories/eventTypeRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
|
||||
+1
-2
@@ -1,11 +1,10 @@
|
||||
import { buildNonDelegationCredential } from "@calcom/lib/delegationCredential";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { Prisma, PrismaClient } from "@calcom/prisma/client";
|
||||
import { safeCredentialSelect } from "@calcom/prisma/selects/credential";
|
||||
import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential";
|
||||
|
||||
import { buildNonDelegationCredential } from "../../delegationCredential";
|
||||
|
||||
const log = logger.getSubLogger({ prefix: ["CredentialRepository"] });
|
||||
|
||||
type CredentialCreateInput = {
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
import prismock from "../../../../../tests/libs/__mocks__/prisma";
|
||||
import prismock from "../../../../tests/libs/__mocks__/prisma";
|
||||
|
||||
import { describe, expect, it, beforeEach, vi } from "vitest";
|
||||
|
||||
import { OrganizationRepository } from "@calcom/features/ee/organizations/repositories/OrganizationRepository";
|
||||
import { encryptServiceAccountKey } from "@calcom/lib/server/serviceAccountKey";
|
||||
|
||||
import { DelegationCredentialRepository } from "../delegationCredential";
|
||||
import { DelegationCredentialRepository } from "./DelegationCredentialRepository";
|
||||
|
||||
vi.mock("@calcom/features/ee/organizations/repositories/OrganizationRepository", () => ({
|
||||
OrganizationRepository: {
|
||||
@@ -1,5 +1,5 @@
|
||||
import { DI_TOKENS } from "@calcom/features/di/tokens";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
|
||||
import { createModule } from "../di";
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import dayjs from "@calcom/dayjs";
|
||||
import * as EmailManager from "@calcom/emails/email-manager";
|
||||
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
|
||||
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { CreditType } from "@calcom/prisma/enums";
|
||||
|
||||
import { CreditService } from "./credit-service";
|
||||
@@ -61,7 +61,7 @@ vi.mock("@calcom/prisma/enums", async (importOriginal) => {
|
||||
|
||||
vi.mock("@calcom/lib/server/repository/credits");
|
||||
vi.mock("@calcom/features/membership/repositories/MembershipRepository");
|
||||
vi.mock("@calcom/lib/server/repository/team");
|
||||
vi.mock("@calcom/features/ee/teams/repositories/TeamRepository");
|
||||
vi.mock("@calcom/emails/email-manager");
|
||||
vi.mock("../workflows/lib/reminders/reminderScheduler", () => ({
|
||||
cancelScheduledMessagesAndScheduleEmails: vi.fn().mockResolvedValue(undefined),
|
||||
|
||||
@@ -13,7 +13,7 @@ import logger from "@calcom/lib/logger";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { CreditsRepository } from "@calcom/lib/server/repository/credits";
|
||||
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import prisma, { type PrismaTransaction } from "@calcom/prisma";
|
||||
import type { CreditUsageType } from "@calcom/prisma/enums";
|
||||
import { CreditType } from "@calcom/prisma/enums";
|
||||
|
||||
-1
@@ -801,7 +801,6 @@ describe("addValueForMember", () => {
|
||||
membershipId: membership.id,
|
||||
// Engineering
|
||||
attributeOptionId: "101",
|
||||
//@ts-expect-error - prismock can't handle string ids it seems
|
||||
dsyncId: dsync.id,
|
||||
});
|
||||
|
||||
+11
-7
@@ -1,11 +1,15 @@
|
||||
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
import { PrismaAttributeOptionRepository } from "../../../server/repository/PrismaAttributeOptionRepository";
|
||||
import { PrismaAttributeRepository } from "../../../server/repository/PrismaAttributeRepository";
|
||||
import type { AttributeId, AttributeName, BulkAttributeAssigner, AttributeOptionAssignment } from "../types";
|
||||
import { PrismaAttributeOptionRepository } from "@calcom/lib/server/repository/PrismaAttributeOptionRepository";
|
||||
import { PrismaAttributeRepository } from "@calcom/lib/server/repository/PrismaAttributeRepository";
|
||||
import { findAssignmentsForMember } from "@calcom/lib/service/attribute/server/utils";
|
||||
import type {
|
||||
AttributeId,
|
||||
AttributeName,
|
||||
BulkAttributeAssigner,
|
||||
AttributeOptionAssignment,
|
||||
} from "@calcom/lib/service/attribute/types";
|
||||
import {
|
||||
doesSupportMultipleValues,
|
||||
isAssignmentForLockedAttribute,
|
||||
@@ -13,8 +17,8 @@ import {
|
||||
isAssignmentSame,
|
||||
buildSlugFromValue,
|
||||
canSetValueBeyondOptions,
|
||||
} from "../utils";
|
||||
import { findAssignmentsForMember } from "./utils";
|
||||
} from "@calcom/lib/service/attribute/utils";
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
const log = logger.getSubLogger({ prefix: ["entity/attribute"] });
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import type { DirectorySyncEvent, User } from "@boxyhq/saml-jackson";
|
||||
|
||||
import removeUserFromOrg from "@calcom/features/ee/dsync/lib/removeUserFromOrg";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import { assignValueToUserInOrgBulk } from "@calcom/lib/service/attribute/server/assignValueToUser";
|
||||
import prisma from "@calcom/prisma";
|
||||
import { IdentityProvider } from "@calcom/prisma/enums";
|
||||
import { getTeamOrThrow } from "@calcom/trpc/server/routers/viewer/teams/inviteMember/utils";
|
||||
@@ -13,6 +12,7 @@ import type { UserWithMembership } from "@calcom/trpc/server/routers/viewer/team
|
||||
import { sendExistingUserTeamInviteEmails } from "@calcom/trpc/server/routers/viewer/teams/inviteMember/utils";
|
||||
import { sendSignupToOrganizationEmail } from "@calcom/trpc/server/routers/viewer/teams/inviteMember/utils";
|
||||
|
||||
import { assignValueToUserInOrgBulk } from "./assignValueToUser";
|
||||
import getAttributesFromScimPayload from "./getAttributesFromScimPayload";
|
||||
import createUsersAndConnectToOrg from "./users/createUsersAndConnectToOrg";
|
||||
import dSyncUserSelect from "./users/dSyncUserSelect";
|
||||
|
||||
@@ -9,8 +9,8 @@ import React from "react";
|
||||
import type { ITimezone } from "react-timezone-select";
|
||||
|
||||
import type { Dayjs } from "@calcom/dayjs";
|
||||
import getSlots from "@calcom/features/schedules/lib/slots";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import getSlots from "@calcom/lib/slots";
|
||||
import { trpc } from "@calcom/trpc/react";
|
||||
|
||||
import SkeletonLoader from "./SkeletonLoaderAvailabilityTimes";
|
||||
|
||||
@@ -2,7 +2,7 @@ import type { ReactNode } from "react";
|
||||
import type { UseFormReturn } from "react-hook-form";
|
||||
|
||||
import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform";
|
||||
import type { CreateEventTypeFormValues } from "@calcom/lib/hooks/useCreateEventType";
|
||||
import type { CreateEventTypeFormValues } from "@calcom/features/eventtypes/hooks/useCreateEventType";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import slugify from "@calcom/lib/slugify";
|
||||
import { SchedulingType } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -6,7 +6,7 @@ import { getBookerBaseUrlSync } from "@calcom/features/ee/organizations/lib/getB
|
||||
import { parseBookingLimit } from "@calcom/lib/intervalLimits/isBookingLimits";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { getTeam, getOrg } from "@calcom/lib/server/repository/team";
|
||||
import { getTeam, getOrg } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import prisma from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
|
||||
+166
-10
@@ -1,18 +1,23 @@
|
||||
import prismaMock from "../../../../tests/libs/__mocks__/prismaMock";
|
||||
import prismaMock from "../../../../../tests/libs/__mocks__/prismaMock";
|
||||
|
||||
import { it, describe, expect } from "vitest";
|
||||
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
||||
|
||||
import { getTeam, getOrg } from "./team";
|
||||
import type { Team } from "@calcom/prisma/client";
|
||||
|
||||
import { getTeam, getOrg, TeamRepository } from "./TeamRepository";
|
||||
|
||||
const sampleTeamProps = {
|
||||
logo: null,
|
||||
logoUrl: null,
|
||||
calVideoLogo: null,
|
||||
appLogo: null,
|
||||
appIconLogo: null,
|
||||
bio: null,
|
||||
description: null,
|
||||
hideBranding: false,
|
||||
isPrivate: false,
|
||||
appIconLogo: null,
|
||||
hideBookATeamMember: false,
|
||||
hideTeamProfileLink: false,
|
||||
createdAt: new Date(),
|
||||
theme: null,
|
||||
brandColor: "",
|
||||
@@ -21,8 +26,159 @@ const sampleTeamProps = {
|
||||
timeZone: "",
|
||||
weekStart: "",
|
||||
parentId: null,
|
||||
metadata: null,
|
||||
isOrganization: false,
|
||||
organizationSettings: null,
|
||||
isPlatform: false,
|
||||
bannerUrl: null,
|
||||
rrResetInterval: 0,
|
||||
rrResetOccurrence: 0,
|
||||
rrResetLimitOn: null,
|
||||
rrResetLimitOccurrences: null,
|
||||
rrResetLimitDate: null,
|
||||
includeManagedEventsInLimits: false,
|
||||
rrTimestampBasis: null,
|
||||
pendingPayment: false,
|
||||
createdByOAuthClientId: null,
|
||||
smsLockState: null,
|
||||
smsLockReviewedByAdmin: false,
|
||||
bookingLimits: null,
|
||||
};
|
||||
|
||||
describe("TeamRepository", () => {
|
||||
let teamRepository: TeamRepository;
|
||||
|
||||
beforeEach(() => {
|
||||
vi.resetAllMocks();
|
||||
teamRepository = new TeamRepository(prismaMock);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
describe("findById", () => {
|
||||
it("should return null if team is not found", async () => {
|
||||
prismaMock.team.findUnique.mockResolvedValue(null);
|
||||
const result = await teamRepository.findById({ id: 1 });
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
|
||||
it("should return parsed team if found", async () => {
|
||||
const mockTeam = {
|
||||
id: 1,
|
||||
name: "Test Team",
|
||||
slug: "test-team",
|
||||
logoUrl: "test-logo-url",
|
||||
parentId: 1,
|
||||
metadata: {
|
||||
requestedSlug: null,
|
||||
},
|
||||
isOrganization: true,
|
||||
organizationSettings: {},
|
||||
isPlatform: true,
|
||||
requestedSlug: null,
|
||||
};
|
||||
prismaMock.team.findUnique.mockResolvedValue(mockTeam as unknown as Team);
|
||||
const result = await teamRepository.findById({ id: 1 });
|
||||
expect(result).toEqual(mockTeam);
|
||||
});
|
||||
});
|
||||
|
||||
describe("deleteById", () => {
|
||||
it("should delete team and related data", async () => {
|
||||
const mockDeletedTeam = { id: 1, name: "Deleted Team" };
|
||||
const deleteManyEventTypeMock = vi.fn();
|
||||
const deleteManyMembershipMock = vi.fn();
|
||||
const deleteTeamMock = vi.fn().mockResolvedValue(mockDeletedTeam as unknown as Team);
|
||||
prismaMock.$transaction.mockImplementation(async (callback) => {
|
||||
const mockTx = {
|
||||
...prismaMock,
|
||||
eventType: {
|
||||
...prismaMock.eventType,
|
||||
deleteMany: deleteManyEventTypeMock,
|
||||
},
|
||||
membership: {
|
||||
...prismaMock.membership,
|
||||
deleteMany: deleteManyMembershipMock,
|
||||
},
|
||||
team: {
|
||||
...prismaMock.team,
|
||||
delete: deleteTeamMock,
|
||||
},
|
||||
};
|
||||
return callback(mockTx);
|
||||
});
|
||||
|
||||
const result = await teamRepository.deleteById({ id: 1 });
|
||||
|
||||
expect(deleteManyEventTypeMock).toHaveBeenCalledWith({
|
||||
where: {
|
||||
teamId: 1,
|
||||
schedulingType: "MANAGED",
|
||||
},
|
||||
});
|
||||
expect(deleteManyMembershipMock).toHaveBeenCalledWith({
|
||||
where: {
|
||||
teamId: 1,
|
||||
},
|
||||
});
|
||||
expect(deleteTeamMock).toHaveBeenCalledWith({
|
||||
where: {
|
||||
id: 1,
|
||||
},
|
||||
});
|
||||
expect(result).toEqual(mockDeletedTeam);
|
||||
});
|
||||
});
|
||||
|
||||
describe("findAllByParentId", () => {
|
||||
it("should return all teams with given parentId", async () => {
|
||||
const mockTeams = [{ id: 1 }, { id: 2 }];
|
||||
prismaMock.team.findMany.mockResolvedValue(mockTeams as unknown as Team[]);
|
||||
const result = await teamRepository.findAllByParentId({ parentId: 1 });
|
||||
expect(prismaMock.team.findMany).toHaveBeenCalledWith({
|
||||
where: { parentId: 1 },
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
slug: true,
|
||||
logoUrl: true,
|
||||
parentId: true,
|
||||
metadata: true,
|
||||
isOrganization: true,
|
||||
organizationSettings: true,
|
||||
isPlatform: true,
|
||||
},
|
||||
});
|
||||
expect(result).toEqual(mockTeams);
|
||||
});
|
||||
});
|
||||
|
||||
describe("findTeamWithMembers", () => {
|
||||
it("should return team with its members", async () => {
|
||||
const mockTeam = { id: 1, members: [] };
|
||||
prismaMock.team.findUnique.mockResolvedValue(mockTeam as unknown as Team & { members: [] });
|
||||
const result = await teamRepository.findTeamWithMembers(1);
|
||||
expect(prismaMock.team.findUnique).toHaveBeenCalledWith({
|
||||
where: { id: 1 },
|
||||
select: {
|
||||
members: {
|
||||
select: {
|
||||
accepted: true,
|
||||
},
|
||||
},
|
||||
id: true,
|
||||
metadata: true,
|
||||
parentId: true,
|
||||
isOrganization: true,
|
||||
},
|
||||
});
|
||||
expect(result).toEqual(mockTeam);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("getOrg", () => {
|
||||
it("should return an Organization correctly by slug even if there is a team with the same slug", async () => {
|
||||
prismaMock.team.findMany.mockResolvedValue([
|
||||
@@ -31,7 +187,7 @@ describe("getOrg", () => {
|
||||
name: "Test Team",
|
||||
slug: "test-slug",
|
||||
isOrganization: true,
|
||||
},
|
||||
} as Team,
|
||||
]);
|
||||
|
||||
const org = await getOrg({
|
||||
@@ -70,7 +226,7 @@ describe("getOrg", () => {
|
||||
name: "Test Team",
|
||||
slug: "test-slug",
|
||||
metadata: {},
|
||||
},
|
||||
} as Team,
|
||||
]);
|
||||
|
||||
const org = await getOrg({
|
||||
@@ -109,7 +265,7 @@ describe("getOrg", () => {
|
||||
name: "Test Team",
|
||||
slug: "test-slug",
|
||||
metadata: [],
|
||||
},
|
||||
} as Team,
|
||||
]);
|
||||
|
||||
await expect(() =>
|
||||
@@ -139,7 +295,7 @@ describe("getTeam", () => {
|
||||
anything: "here",
|
||||
paymentId: "1",
|
||||
},
|
||||
},
|
||||
} as Team,
|
||||
]);
|
||||
|
||||
const team = await getTeam({
|
||||
@@ -181,7 +337,7 @@ describe("getTeam", () => {
|
||||
name: "Test Team",
|
||||
slug: "test-slug",
|
||||
isOrganization: true,
|
||||
},
|
||||
} as Team,
|
||||
]);
|
||||
|
||||
const team = await getTeam({
|
||||
@@ -222,7 +378,7 @@ describe("getTeam", () => {
|
||||
slug: "test-slug",
|
||||
parentId: 100,
|
||||
metadata: null,
|
||||
},
|
||||
} as Team,
|
||||
]);
|
||||
|
||||
await getTeam({
|
||||
+1
-2
@@ -2,14 +2,13 @@ import type { z } from "zod";
|
||||
|
||||
import { whereClauseForOrgWithSlugOrRequestedSlug } from "@calcom/ee/organizations/lib/orgDomains";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { getParsedTeam } from "@calcom/lib/server/repository/teamUtils";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import type { Prisma } from "@calcom/prisma/client";
|
||||
import { MembershipRole } from "@calcom/prisma/enums";
|
||||
import { teamMetadataSchema } from "@calcom/prisma/zod-utils";
|
||||
|
||||
import { getParsedTeam } from "./teamUtils";
|
||||
|
||||
type TeamGetPayloadWithParsedMetadata<TeamSelect extends Prisma.TeamSelect> =
|
||||
| (Omit<Prisma.TeamGetPayload<{ select: TeamSelect }>, "metadata" | "isOrganization"> & {
|
||||
metadata: z.infer<typeof teamMetadataSchema>;
|
||||
@@ -4,8 +4,8 @@ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
||||
|
||||
import { TeamBilling } from "@calcom/features/ee/billing/teams";
|
||||
import { deleteDomain } from "@calcom/lib/domainManager/organization";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
|
||||
import { TeamService } from "./teamService";
|
||||
|
||||
@@ -14,8 +14,8 @@ vi.mock("@calcom/prisma", () => ({
|
||||
}));
|
||||
|
||||
vi.mock("@calcom/features/ee/billing/teams");
|
||||
vi.mock("@calcom/lib/server/repository/team");
|
||||
vi.mock("@calcom/lib/server/service/workflows");
|
||||
vi.mock("@calcom/features/ee/teams/repositories/TeamRepository");
|
||||
vi.mock("@calcom/features/ee/workflows/lib/service/WorkflowService");
|
||||
vi.mock("@calcom/lib/domainManager/organization");
|
||||
vi.mock("@calcom/features/ee/teams/lib/removeMember");
|
||||
class Database {
|
||||
|
||||
@@ -6,8 +6,8 @@ import { TeamBilling } from "@calcom/features/ee/billing/teams";
|
||||
import { updateNewTeamMemberEventTypes } from "@calcom/features/ee/teams/lib/queries";
|
||||
import { createAProfileForAnExistingUser } from "@calcom/features/profile/lib/createAProfileForAnExistingUser";
|
||||
import { deleteDomain } from "@calcom/lib/domainManager/organization";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import type { Membership, Team, User, VerificationToken, Profile } from "@calcom/prisma/client";
|
||||
import { MembershipRole } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -16,8 +16,8 @@ import { TRPCError } from "@trpc/server";
|
||||
import { TeamService } from "./teamService";
|
||||
|
||||
vi.mock("@calcom/features/ee/billing/teams");
|
||||
vi.mock("@calcom/lib/server/repository/team");
|
||||
vi.mock("@calcom/lib/server/service/workflows");
|
||||
vi.mock("@calcom/features/ee/teams/repositories/TeamRepository");
|
||||
vi.mock("@calcom/features/ee/workflows/lib/service/WorkflowService");
|
||||
vi.mock("@calcom/lib/domainManager/organization");
|
||||
vi.mock("@calcom/features/ee/teams/lib/removeMember");
|
||||
vi.mock("@calcom/features/profile/lib/createAProfileForAnExistingUser");
|
||||
|
||||
@@ -8,8 +8,8 @@ import { createAProfileForAnExistingUser } from "@calcom/features/profile/lib/cr
|
||||
import { deleteDomain } from "@calcom/lib/domainManager/organization";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { ProfileRepository } from "@calcom/features/profile/repositories/ProfileRepository";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import { Prisma } from "@calcom/prisma/client";
|
||||
import type { Membership } from "@calcom/prisma/client";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import { CAL_AI_AGENT_PHONE_NUMBER_FIELD } from "@calcom/lib/SystemField";
|
||||
import { CAL_AI_AGENT_PHONE_NUMBER_FIELD } from "@calcom/lib/bookings/SystemField";
|
||||
import { FeaturesRepository } from "@calcom/features/flags/features.repository";
|
||||
import tasker from "@calcom/features/tasker";
|
||||
import { checkRateLimitAndThrowError } from "@calcom/lib/checkRateLimitAndThrowError";
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import { tasker } from "@calcom/features/tasker";
|
||||
import { WorkflowTriggerEvents, WorkflowActions, WorkflowTemplates, TimeUnit } from "@calcom/prisma/enums";
|
||||
import { test } from "@calcom/web/test/fixtures/fixtures";
|
||||
|
||||
import { WorkflowService } from "./workflows";
|
||||
import { WorkflowService } from "./WorkflowService";
|
||||
|
||||
vi.mock("@calcom/features/ee/workflows/lib/reminders/reminderScheduler");
|
||||
vi.mock("@calcom/features/tasker");
|
||||
+2
-3
@@ -4,16 +4,15 @@ import type { ScheduleWorkflowRemindersArgs } from "@calcom/ee/workflows/lib/rem
|
||||
import { scheduleWorkflowReminders } from "@calcom/ee/workflows/lib/reminders/reminderScheduler";
|
||||
import type { timeUnitLowerCase } from "@calcom/ee/workflows/lib/reminders/smsReminderManager";
|
||||
import type { Workflow } from "@calcom/ee/workflows/lib/types";
|
||||
import { tasker } from "@calcom/features/tasker";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { WorkflowRepository } from "@calcom/features/ee/workflows/repositories/WorkflowRepository";
|
||||
import { getHideBranding } from "@calcom/features/profile/lib/hideBranding";
|
||||
import { tasker } from "@calcom/features/tasker";
|
||||
import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import { WorkflowTriggerEvents, WorkflowType } from "@calcom/prisma/enums";
|
||||
import type { FORM_SUBMITTED_WEBHOOK_RESPONSES } from "@calcom/routing-forms/lib/formSubmissionUtils";
|
||||
|
||||
import { TeamRepository } from "../repository/team";
|
||||
|
||||
// TODO (Sean): Move most of the logic migrated in 16861 to this service
|
||||
export class WorkflowService {
|
||||
static _beforeAfterEventTriggers: WorkflowTriggerEvents[] = [
|
||||
@@ -5,7 +5,7 @@ import { z } from "zod";
|
||||
import { Dialog } from "@calcom/features/components/controlled-dialog";
|
||||
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
|
||||
import { TeamEventTypeForm } from "@calcom/features/ee/teams/components/TeamEventTypeForm";
|
||||
import { useCreateEventType } from "@calcom/lib/hooks/useCreateEventType";
|
||||
import { useCreateEventType } from "@calcom/features/eventtypes/hooks/useCreateEventType";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { useTypedQuery } from "@calcom/lib/hooks/useTypedQuery";
|
||||
import type { EventType } from "@calcom/prisma/client";
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { UseFormReturn } from "react-hook-form";
|
||||
|
||||
import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform";
|
||||
import { MAX_EVENT_DURATION_MINUTES, MIN_EVENT_DURATION_MINUTES } from "@calcom/lib/constants";
|
||||
import type { CreateEventTypeFormValues } from "@calcom/lib/hooks/useCreateEventType";
|
||||
import type { CreateEventTypeFormValues } from "@calcom/features/eventtypes/hooks/useCreateEventType";
|
||||
import { useLocale } from "@calcom/lib/hooks/useLocale";
|
||||
import { md } from "@calcom/lib/markdownIt";
|
||||
import slugify from "@calcom/lib/slugify";
|
||||
|
||||
@@ -257,20 +257,3 @@ export const fieldTypesSchemaMap: Partial<
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* DB Read schema has no field type based validation because user might change the type of a field from Type1 to Type2 after some data has been collected with Type1.
|
||||
* Parsing that type1 data with type2 schema will fail.
|
||||
* So, we just validate that the response conforms to one of the field types' schema.
|
||||
*/
|
||||
export const dbReadResponseSchema = z.union([
|
||||
z.string(),
|
||||
z.boolean(),
|
||||
z.string().array(),
|
||||
z.object({
|
||||
optionValue: z.string(),
|
||||
value: z.string(),
|
||||
}),
|
||||
// For variantsConfig case
|
||||
z.record(z.string()),
|
||||
]);
|
||||
|
||||
@@ -9,7 +9,7 @@ import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId";
|
||||
import { HttpError } from "@calcom/lib/http-error";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { getTranslation } from "@calcom/lib/server/i18n";
|
||||
import { WorkflowService } from "@calcom/lib/server/service/workflows";
|
||||
import { WorkflowService } from "@calcom/features/ee/workflows/lib/service/WorkflowService";
|
||||
import { getTimeFormatStringFromUserTimeFormat } from "@calcom/lib/timeFormat";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
import { WebhookTriggerEvents, WorkflowTriggerEvents } from "@calcom/prisma/enums";
|
||||
|
||||
+5
-3
@@ -1,9 +1,11 @@
|
||||
import {
|
||||
HashedLinkRepository,
|
||||
type HashedLinkInputType,
|
||||
} from "@calcom/features/hashedLink/repositories/hashedLinkRepository";
|
||||
import { MembershipService } from "@calcom/features/membership/services/membershipService";
|
||||
import { ErrorCode } from "@calcom/lib/errorCodes";
|
||||
import { validateHashedLinkData } from "@calcom/lib/hashedLinksUtils";
|
||||
|
||||
import { HashedLinkRepository, type HashedLinkInputType } from "../repository/hashedLinkRepository";
|
||||
import { MembershipService } from "./membershipService";
|
||||
|
||||
type NormalizedLink = {
|
||||
link: string;
|
||||
expiresAt: Date | null;
|
||||
@@ -16,7 +16,7 @@ import { extractDateRangeFromColumnFilters } from "@calcom/features/insights/lib
|
||||
import type { DateRange } from "@calcom/features/insights/server/insightsDateUtils";
|
||||
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
|
||||
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import { Prisma } from "@calcom/prisma/client";
|
||||
import { MembershipRole } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
} from "@calcom/features/data-table/lib/utils";
|
||||
import type { DateRange } from "@calcom/features/insights/server/insightsDateUtils";
|
||||
import { PermissionCheckService } from "@calcom/features/pbac/services/permission-check.service";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import type { PrismaClient } from "@calcom/prisma";
|
||||
import { Prisma } from "@calcom/prisma/client";
|
||||
import type { BookingStatus } from "@calcom/prisma/enums";
|
||||
|
||||
@@ -373,35 +373,6 @@ export class MembershipRepository {
|
||||
return membershipsWithSelectedCalendars;
|
||||
}
|
||||
|
||||
static async findMembershipsForBothOrgAndTeam({ orgId, teamId }: { orgId: number; teamId: number }) {
|
||||
const memberships = await prisma.membership.findMany({
|
||||
where: {
|
||||
teamId: {
|
||||
in: [orgId, teamId],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
type Membership = (typeof memberships)[number];
|
||||
|
||||
const { teamMemberships, orgMemberships } = memberships.reduce(
|
||||
(acc, membership) => {
|
||||
if (membership.teamId === teamId) {
|
||||
acc.teamMemberships.push(membership);
|
||||
} else if (membership.teamId === orgId) {
|
||||
acc.orgMemberships.push(membership);
|
||||
}
|
||||
return acc;
|
||||
},
|
||||
{ teamMemberships: [] as Membership[], orgMemberships: [] as Membership[] }
|
||||
);
|
||||
|
||||
return {
|
||||
teamMemberships,
|
||||
orgMemberships,
|
||||
};
|
||||
}
|
||||
|
||||
static async getAdminOrOwnerMembership(userId: number, teamId: number) {
|
||||
return prisma.membership.findFirst({
|
||||
where: {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { ProfileRepository } from "@calcom/features/profile/repositories/Profile
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { safeStringify } from "@calcom/lib/safeStringify";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import prisma from "@calcom/prisma";
|
||||
import { RedirectType } from "@calcom/prisma/enums";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ProfileRepository } from "@calcom/features/profile/repositories/ProfileRepository";
|
||||
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
|
||||
import logger from "@calcom/lib/logger";
|
||||
import { TeamRepository } from "@calcom/lib/server/repository/team";
|
||||
import { TeamRepository } from "@calcom/features/ee/teams/repositories/TeamRepository";
|
||||
import { prisma } from "@calcom/prisma";
|
||||
|
||||
const log = logger.getSubLogger({ name: "hideBranding" });
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it, beforeAll, vi } from "vitest";
|
||||
|
||||
import dayjs from "@calcom/dayjs";
|
||||
import type { DateRange } from "@calcom/features/schedules/lib/date-ranges";
|
||||
|
||||
import type { DateRange } from "./date-ranges";
|
||||
import getSlots from "./slots";
|
||||
|
||||
let dateRangesNextDay: DateRange[];
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user