Skip to content

Commit 96bec9f

Browse files
refactor: Move repositories from @calcom/lib to @calcom/features domain folders (#27570)
* refactor: move repositories from lib to features domain folders - Move HolidayRepository to features/holidays/repositories - Move PrismaTrackingRepository to features/bookings/repositories - Move PrismaBookingPaymentRepository to features/bookings/repositories - Move PrismaRoutingFormResponseRepository to features/routing-forms/repositories - Move PrismaAssignmentReasonRepository to features/assignment-reason/repositories - Move VerificationTokenRepository to features/auth/repositories - Move WorkspacePlatformRepository to features/workspace-platform/repositories - Move DTO files to their respective feature domains - Merge lib DestinationCalendarRepository into features version - Merge lib SelectedCalendarRepository into features version - Update all import paths across the codebase This follows the vertical slice architecture pattern by organizing repositories by domain rather than by technical layer. Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * fix: update VerificationTokenService import path to new location Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * fix: update test file imports to use new repository locations Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * mv * fix structure * fix * refactor: merge unit tests for SelectedCalendarRepository into single file Co-Authored-By: benny@cal.com <sldisek783@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent d4a0590 commit 96bec9f

78 files changed

Lines changed: 1027 additions & 1036 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/api/v1/pages/api/selected-calendars/[id]/_delete.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { NextApiRequest } from "next";
22

33
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
4-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
4+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
55

66
import { selectedCalendarIdSchema } from "~/lib/validations/selected-calendar";
77

apps/api/v1/pages/api/selected-calendars/[id]/_get.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { NextApiRequest } from "next";
22

33
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
4-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
4+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
55

66
import { schemaSelectedCalendarPublic, selectedCalendarIdSchema } from "~/lib/validations/selected-calendar";
77

apps/api/v1/pages/api/selected-calendars/[id]/_patch.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import type { NextApiRequest } from "next";
22

33
import { HttpError } from "@calcom/lib/http-error";
44
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
5-
import type { UpdateArguments } from "@calcom/lib/server/repository/selectedCalendar";
6-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
5+
import type { UpdateArguments } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
6+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
77
import prisma from "@calcom/prisma";
88
import type { Prisma } from "@calcom/prisma/client";
99

apps/api/v1/pages/api/selected-calendars/_get.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import type { NextApiRequest } from "next";
22

33
import { HttpError } from "@calcom/lib/http-error";
44
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
5-
import type { FindManyArgs } from "@calcom/lib/server/repository/selectedCalendar";
6-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
5+
import type { FindManyArgs } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
6+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
77

88
import { schemaSelectedCalendarPublic } from "~/lib/validations/selected-calendar";
99
import { schemaQuerySingleOrMultipleUserIds } from "~/lib/validations/shared/queryUserId";

apps/api/v1/pages/api/selected-calendars/_post.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { NextApiRequest } from "next";
22

33
import { HttpError } from "@calcom/lib/http-error";
44
import { defaultResponder } from "@calcom/lib/server/defaultResponder";
5-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
5+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
66
import prisma from "@calcom/prisma";
77
import type { Prisma } from "@calcom/prisma/client";
88

apps/web/app/api/availability/calendar/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
1313
import { HttpError } from "@calcom/lib/http-error";
1414
import notEmpty from "@calcom/lib/notEmpty";
15-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
15+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
1616
import prisma from "@calcom/prisma";
1717

1818
import { buildLegacyRequest } from "@lib/buildLegacyCtx";

apps/web/app/api/cron/selected-calendars/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { CalendarAppDelegationCredentialInvalidGrantError } from "@calcom/lib/Ca
1616
import { HttpError } from "@calcom/lib/http-error";
1717
import logger from "@calcom/lib/logger";
1818
import { safeStringify } from "@calcom/lib/safeStringify";
19-
import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar";
19+
import { SelectedCalendarRepository } from "@calcom/features/selectedCalendar/repositories/SelectedCalendarRepository";
2020
import type { CredentialForCalendarServiceWithEmail } from "@calcom/types/Credential";
2121
import type { Ensure } from "@calcom/types/utils";
2222

apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { beforeEach, describe, it, expect, vi } from "vitest";
44
import { onSubmissionOfFormResponse } from "@calcom/app-store/routing-forms/lib/formSubmissionUtils";
55
import { getResponseToStore } from "@calcom/app-store/routing-forms/lib/getResponseToStore";
66
import { getSerializableForm } from "@calcom/app-store/routing-forms/lib/getSerializableForm";
7-
import { RoutingFormResponseRepository } from "@calcom/lib/server/repository/formResponse";
7+
import { RoutingFormResponseRepository } from "@calcom/features/routing-forms/repositories/RoutingFormResponseRepository";
88

99
import { queuedResponseHandler } from "../route";
1010

11-
vi.mock("@calcom/lib/server/repository/formResponse");
11+
vi.mock("@calcom/features/routing-forms/repositories/RoutingFormResponseRepository");
1212

1313
const mockRoutingFormResponseRepository = {
1414
getQueuedFormResponseFromId: vi.fn(),

apps/web/app/api/routing-forms/queued-response/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { getSerializableForm } from "@calcom/app-store/routing-forms/lib/getSeri
88
import { PrismaPendingRoutingTraceRepository } from "@calcom/features/routing-trace/repositories/PrismaPendingRoutingTraceRepository";
99
import logger from "@calcom/lib/logger";
1010
import { safeStringify } from "@calcom/lib/safeStringify";
11-
import { RoutingFormResponseRepository } from "@calcom/lib/server/repository/formResponse";
11+
import { RoutingFormResponseRepository } from "@calcom/features/routing-forms/repositories/RoutingFormResponseRepository";
1212
import prisma from "@calcom/prisma";
1313

1414
import { defaultResponderForAppDir } from "../../defaultResponderForAppDir";

biome.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,27 @@
250250
}
251251
}
252252
},
253+
{
254+
"includes": [
255+
"packages/lib/**/*repository*.{ts,tsx,js,jsx}",
256+
"packages/lib/**/*Repository*.{ts,tsx,js,jsx}",
257+
"packages/lib/**/repository/**/*.{ts,tsx,js,jsx}",
258+
"packages/lib/**/repositories/**/*.{ts,tsx,js,jsx}"
259+
],
260+
"linter": {
261+
"rules": {
262+
"style": {
263+
"useFilenamingConvention": {
264+
"level": "error",
265+
"options": {
266+
"match": "REPOSITORY-FILES-NOT-ALLOWED-IN-PACKAGES-LIB[.](.+)",
267+
"filenameCases": ["camelCase"]
268+
}
269+
}
270+
}
271+
}
272+
}
273+
},
253274
{
254275
"includes": ["packages/app-store/**/*.{ts,tsx,js,jsx,mts,mjs,cjs,cts}"],
255276
"linter": {

0 commit comments

Comments
 (0)