From c28eb90928bad4d2001cda145c093eee860d4450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Omar=20L=C3=B3pez?= Date: Thu, 11 Sep 2025 07:27:50 -0700 Subject: [PATCH] chore: Upgrade prisma to 6.7.0 (#21264) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Upgrade prisma to 6.7.0 * Build fixes * type fixes Signed-off-by: Omar López * Update schema.prisma * Patching * Revert "Update schema.prisma" This reverts commit 47d8618bf89ef4d007b30084df766f17281e21a1. * Revert "Patching" This reverts commit a1d2e3040e71690a44d4324db95d73b4d68c6adb. * Revert schema changes Signed-off-by: Omar López * WIP Signed-off-by: Omar López * Update getPublicEvent.ts * Update imports Signed-off-by: Omar López * Update gitignore Signed-off-by: Omar López * update remaining imports Signed-off-by: Omar López * Delete .cursor/config.json * Discard changes to packages/features/eventtypes/lib/getPublicEvent.ts * Update _get.ts * Update user.ts * Update .gitignore * update * Update WorkflowStepContainer.tsx * Update next-auth-custom-adapter.ts * Update getPublicEvent.ts * Update workflow.ts * Update next-auth-custom-adapter.ts * Update next-auth-options.ts * Update bookingScenario.ts * fix missing imports * upgrades prismock Signed-off-by: Omar López * patches prismock Signed-off-by: Omar López * Update reschedule.test.ts * Update prisma.ts * patch prismock Signed-off-by: Omar López * fix enums imports Signed-off-by: Omar López * Revert "Update prisma.ts" This reverts commit 64edcf8db54171ff4456c209d563b5d431d99619. * Revert "patch prismock" This reverts commit e95819113dc9d88e7130947aa120cd42710977c8. * fix patch * Fix test that overrun the boundary, it shouldn't test too much * Move prisma import to changeSMSLockState * Bring back broken test without illegal imports * Merge with main and fix filter hosts by same round robin host * Fixed buildDryRunBooking fn tests * Fix and move ooo create or update handler test * Fix packages/features/eventtypes/lib/isCurrentlyAvailable.test.ts * Fix packages/trpc/server/routers/viewer/organizations/listMembers.handler.test.ts * Mock @calcom/prisma * Fix: verify-email.test.ts * fix: Moved WebhookService test and fixed default import mock * Fix: Added missing prisma mock, handleNewBooking uses that of course * We're not testing createContext here * fix: Prisma mock fix for listMembers.test.ts * More fixes to broken testcases * Forgot to remove borked test * Prevent the need to mock a lot of dependencies by moving out buildBaseWhereCondition to its own file * Temporarily skip getCalendarEvents, needs a rewrite * Fix: turns out you can access protected in testcases * fix further mocks * Added packages/features/insights/server/buildBaseWhereCondition.ts, types * Always great to have a mock and then not use it * And one less again. * fix: confirm.handler.test, didn't mock prisma * fix: Address minor nit by @eunjae & fix ImpersonationProvider test * Updated isPrismaAvailableCheck that doesn't crash on import * fix: Get Prisma directly from the client, it usually involves the Validator and does not need 'local' inclusion * Add zod-prisma-types without the generator enabled (commented out) * Uncomment and see what happens * Change method of import as imports did not work in Input Schemas * Remove custom 'zod' booking model, it does not belong with Prisma * Fix all other global Model imports * Rewrite most schema includes AND remove barrel file * Add bookingCreateBodySchema to features/bookings * Flurry of type fixes for compatibility with new zod gen * Refactor out the custom prisma type createEventTypeInput * Work around nullable eventTypeLocations * HandlePayment type fix * More fixes, final fix remaining is CompleteEventType * Should fix a bunch more booking related type errors * Missed one * Some props missing from BookingCreateBodySchema * Fix location type in handleChildrenEventTypes * Little bit hacky imo but it works * Final type error \o/ * Forgot to include Prisma * Do not include zod-utils in booker/types * Oops, was already including Booker/types * Fix membership type, also disallow updating createdAt/updatedAt, make part of patch/post * Fix api v1 type errors * Fix EventTypeDescription typings * Remove getParserWithGeneric, use userBodySchema with UserSchema * use centralized timeZoneSchema * Implement feedback by @zomars * Couple of WIP pushes * Fix tests * Type fixes in `handleChildrenEventTypes` test * Try and parse metadata before use * Change zod-prisma-types configuration for optimal performance * Fix prisma validator error in `prisma/selects/credential` * Disable seperate relations model, hits a bug * Import absolute - this makes rollup work in @platform/libraries * Attempt at removing resolutions override * Refactor using `Prisma.validator` to `satisfies` * Build atoms using @calcom/prisma/client * Build atoms using @calcom/prisma/client * fixes * Update eventTypeSelect.ts * Adjust `eventTypeMetaDataSchemaWithUntypedApps` from `unknown` to `record(any)` * `EventTypeDescription` rely on `descriptionAsSafeHTML` instead of `description` * Add `seatsPerTimeSlot` to event type public select * Fix typing in `users-public-view` getServerSide props * Add missing `schedulingType` to prop * chore: bump platform libraries * Function return type is illegal, not sure how this passed eslint (#21567) * Merged with main * Update updateTokenObject.ts * Update handleResponse.ts * Update index.ts * Update handleChildrenEventTypes.ts * Update booking-idempotency-key.ts * Update WebhookService.test.ts * Update events.test.ts * Update queued-response.test.ts * Update events.test.ts * Update getRoutedUrl.test.ts * fix: type checks Signed-off-by: Omar López * fixes Signed-off-by: Omar López * chore: bump platform libraries * Update yarn.lock * more fixes Signed-off-by: Omar López * fixes Signed-off-by: Omar López * biuld fixes * chore: bump platform libraries * Update conferencing.repository.ts * Update conferencing.repository.ts * Update getCalendarsEvents.test.ts * Update vite.config.js * chore: bump platform libraries * Update users.ts * Discard changes to docs/api-reference/v2/openapi.json * Update vite.config.ts * updated platform libraries * Update get.handler.test.ts * Update get.handler.test.ts * Update schema.prisma * Discard changes to docs/api-reference/v2/openapi.json * Update next-auth-custom-adapter.ts * Update team.ts * Flurry of type fixes * Fix majority of insight related type errors * Type fixes for unlink of account * Make user nullable again * Fixed a bunch of unit tests and one type error * Attempted mock fix * Attempted fix for Attribute type * Ensure default import becomes prisma, but not direct usage * Import default as prisma in prisma.module * Add attributeOption to attribute type * Fix calcom/prisma mock * Refactor Prisma client imports to @calcom/prisma/client Updated all imports from '@prisma/client' to '@calcom/prisma/client' across tests and repository files for consistency and to use the correct Prisma client package. This change improves maintainability and ensures the correct client is referenced throughout the codebase. * Undo removal of max-warnings=0 to get main to merge * Remove unit tests for e2e fixtures, provide new prisma mock * Mock @calcom/prisma in event manager * Mock @calcom/prisma in event manager * Add correct format even with --no-verify * Mock prisma in CalendarManager * Add mock for permission-check.service * Better injection in PrismaApiKeyRepository imports * More mock fixes :) * Fix listMembers.handler.test * Fix User import * Appropriately adjust all types to be imported as types, there were a lot of types imported as normal deps * Why was this a thing? * Strictly speaking; Not using prismock anymore * Ditched patch file for prismock * Fix output.service.ts platform type imports, need concrete for plainToClass * Better typing and tests for unlinkConnectedAccount.handler * Small type fix * Disable calendar cache tests as they are dependent on prismock * chore: bump platform lib * getRoutedUrl test remove of unused import * Extract select to external const on getEventTypesFromDB * Direct select of userSelect from selects/user * fix type error from merging 23653 * Fixed integration tests by removing hardcoded values that were possible due to mocking, but as its now directly hitting the db no longer * fix: vite config atoms prisma client type location * revert: example app prisma client * revert: example app prisma client * bump platform libs * fix: use class instead of type for DI of PlatformBookingsService * update platform libs * remove unused variable * chore: generate prisma client for api v2 * fix: api v2 e2e * fix: atoms e2e * fix: atoms e2e * fix: atoms e2e * fix: api v2 e2e * fix: tsconfig apiv2 enums * publish libraries * Simplify check for existence teamId --------- Signed-off-by: Omar López Co-authored-by: Alex van Andel Co-authored-by: Joe Au-Yeung Co-authored-by: supalarry Co-authored-by: cal.com Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: Benny Joo --- .gitignore | 3 +- apps/api/v1/lib/validations/api-key.ts | 2 +- apps/api/v1/lib/validations/attendee.ts | 6 +- apps/api/v1/lib/validations/availability.ts | 9 +- .../v1/lib/validations/booking-reference.ts | 10 +- apps/api/v1/lib/validations/booking.ts | 50 +- .../lib/validations/destination-calendar.ts | 6 +- .../validations/event-type-custom-input.ts | 6 +- apps/api/v1/lib/validations/event-type.ts | 9 +- apps/api/v1/lib/validations/membership.ts | 17 +- apps/api/v1/lib/validations/payment.ts | 4 +- apps/api/v1/lib/validations/reminder-mail.ts | 6 +- apps/api/v1/lib/validations/schedule.ts | 9 +- .../v1/lib/validations/selected-calendar.ts | 22 +- apps/api/v1/lib/validations/team.ts | 6 +- apps/api/v1/lib/validations/user.ts | 6 +- apps/api/v1/lib/validations/webhook.ts | 6 +- apps/api/v1/pages/api/api-keys/_get.ts | 2 +- apps/api/v1/pages/api/api-keys/_post.ts | 2 +- apps/api/v1/pages/api/attendees/_get.ts | 2 +- .../api/booking-references/[id]/_patch.ts | 2 +- .../v1/pages/api/booking-references/_get.ts | 2 +- .../v1/pages/api/booking-references/_post.ts | 2 +- .../api/bookings/[id]/_auth-middleware.ts | 11 +- apps/api/v1/pages/api/bookings/_get.ts | 2 +- .../v1/pages/api/custom-inputs/[id]/_patch.ts | 8 +- apps/api/v1/pages/api/custom-inputs/_get.ts | 2 +- apps/api/v1/pages/api/custom-inputs/_post.ts | 6 +- .../api/destination-calendars/[id]/_patch.ts | 2 +- .../v1/pages/api/event-types/[id]/_patch.ts | 5 +- apps/api/v1/pages/api/event-types/_post.ts | 12 +- .../api/v1/pages/api/memberships/[id]/_get.ts | 2 +- .../v1/pages/api/memberships/[id]/_patch.ts | 10 +- apps/api/v1/pages/api/memberships/_get.ts | 2 +- apps/api/v1/pages/api/memberships/_post.ts | 7 +- apps/api/v1/pages/api/schedules/_get.ts | 2 +- apps/api/v1/pages/api/schedules/_post.ts | 2 +- .../api/selected-calendars/[id]/_patch.ts | 2 +- .../v1/pages/api/selected-calendars/_post.ts | 2 +- .../api/teams/[teamId]/_auth-middleware.ts | 2 +- apps/api/v1/pages/api/teams/[teamId]/_get.ts | 2 +- .../api/v1/pages/api/teams/[teamId]/_patch.ts | 2 +- .../api/teams/[teamId]/event-types/_get.ts | 2 +- apps/api/v1/pages/api/teams/_get.ts | 2 +- apps/api/v1/pages/api/users/_get.ts | 2 +- apps/api/v1/pages/api/webhooks/[id]/_patch.ts | 2 +- apps/api/v1/pages/api/webhooks/_get.ts | 2 +- apps/api/v1/pages/api/webhooks/_post.ts | 2 +- .../_auth-middleware.integration-test.ts | 378 +- .../test/lib/selected-calendars/_post.test.ts | 4 +- apps/api/v2/.gitignore | 3 +- apps/api/v2/package.json | 2 +- apps/api/v2/src/app.e2e-spec.ts | 2 +- .../bookings.controller.e2e-spec.ts | 7 +- .../controllers/bookings.controller.ts | 4 +- .../managed-user-bookings.e2e-spec.ts | 2 +- .../booking-references.repository.ts | 3 +- .../2024-08-13/bookings.repository.ts | 3 +- .../e2e/api-key-bookings.e2e-spec.ts | 3 +- .../e2e/booking-fields.e2e-spec.ts | 2 +- .../e2e/calendar-links.e2e-spec.ts | 3 +- .../e2e/confirm-bookings.e2e-spec.ts | 4 +- .../e2e/emails/confirm-emails.e2e-spec.ts | 8 +- .../e2e/emails/team-emails.e2e-spec.ts | 5 +- .../e2e/emails/user-emails.e2e-spec.ts | 9 +- .../e2e/managed-user-bookings.e2e-spec.ts | 2 +- .../e2e/reassign-bookings.e2e-spec.ts | 9 +- .../e2e/recurring-bookings.e2e-spec.ts | 8 +- .../e2e/seated-bookings.e2e-spec.ts | 7 +- .../controllers/e2e/team-bookings.e2e-spec.ts | 5 +- .../controllers/e2e/user-bookings.e2e-spec.ts | 14 +- .../e2e/variable-length-bookings.e2e-spec.ts | 5 +- .../2024-08-13/services/bookings.service.ts | 4 +- .../2024-08-13/services/input.service.ts | 6 +- .../2024-08-13/services/output.service.ts | 23 +- .../shared/platform-bookings.service.ts | 2 +- .../src/ee/calendars/calendars.repository.ts | 2 +- .../calendars.controller.e2e-spec.ts | 2 +- .../controllers/calendars.controller.ts | 8 +- .../services/apple-calendar.service.ts | 2 +- .../calendars/services/calendars.service.ts | 11 +- .../src/ee/calendars/services/gcal.service.ts | 2 +- .../event-types.controller.e2e-spec.ts | 10 +- .../controllers/event-types.controller.ts | 2 +- .../services/event-types.service.ts | 2 +- .../event-types.controller.e2e-spec.ts | 4 +- .../event-types.repository.ts | 3 +- .../services/event-types.service.ts | 4 +- .../services/output-event-types.service.ts | 4 +- .../src/ee/gcal/gcal.controller.e2e-spec.ts | 3 +- .../v2/src/ee/me/me.controller.e2e-spec.ts | 5 +- .../schedules.controller.e2e-spec.ts | 4 +- .../schedules.repository.ts | 3 +- .../services/schedules.service.ts | 6 +- .../schedules.controller.e2e-spec.ts | 6 +- .../schedules.repository.ts | 2 +- .../services/output-schedules.service.ts | 4 +- .../services/schedules.service.ts | 9 +- .../v2/src/filters/prisma-exception.filter.ts | 4 +- apps/api/v2/src/lib/extract-user-context.ts | 2 +- .../prisma-attribute.repository.ts | 2 +- .../repositories/prisma-booking.repository.ts | 2 +- .../prisma-event-type.repository.ts | 2 +- .../prisma-features.repository.ts | 2 +- .../repositories/prisma-host.repository.ts | 2 +- .../prisma-membership.repository.ts | 2 +- .../lib/repositories/prisma-ooo.repository.ts | 2 +- ...prisma-routing-form-response.repository.ts | 2 +- .../prisma-schedule.repository.ts | 2 +- .../prisma-selected-slot.repository.ts | 2 +- .../repositories/prisma-team.repository.ts | 2 +- .../repositories/prisma-user.repository.ts | 2 +- .../v2/src/modules/apps/apps.repository.ts | 3 +- .../services/conferencing-atom.service.ts | 2 +- .../services/event-types-atom.service.ts | 4 +- .../atoms/services/schedules-atom.service.ts | 2 +- .../get-membership.decorator.ts | 2 +- .../decorators/get-org/get-org.decorator.ts | 2 +- .../decorators/get-team/get-team.decorator.ts | 2 +- .../memberships/is-membership-in-org.guard.ts | 2 +- .../is-admin-api-enabled.guard.ts | 2 +- .../is-managed-org-in-manager-org.guard.ts | 2 +- .../auth/guards/organizations/is-org.guard.ts | 2 +- .../is-user-routing-form.guard.ts | 2 +- .../organizations/is-webhook-in-org.guard.ts | 2 +- .../guards/permissions/permissions.guard.ts | 2 +- .../modules/auth/guards/roles/roles.guard.ts | 2 +- .../is-routing-form-in-team.guard.ts | 2 +- .../auth/guards/teams/is-team-in-org.guard.ts | 2 +- .../guards/users/is-user-in-org-team.guard.ts | 2 +- .../auth/guards/users/is-user-in-org.guard.ts | 2 +- .../api-auth/api-auth.strategy.e2e-spec.ts | 2 +- .../billing.controller.e2e-spec.ts | 14 +- .../update-unified-calendar-event.input.ts | 6 +- .../get-unified-calendar-event.output.ts | 4 +- .../get-calendar-event-details-output-pipe.ts | 22 +- .../pipes/google-calendar-event-input-pipe.ts | 35 +- .../google-calendar-event-input.pipe.spec.ts | 59 +- .../services/google-calendar.service.ts | 3 +- .../conferencing.controller.e2e-spec.ts | 5 +- .../repositories/conferencing.repository.ts | 2 +- .../services/office365-video.service.ts | 2 +- .../services/zoom-video.service.ts | 2 +- .../credentials/credentials.repository.ts | 2 +- ...stination-calendars.controller.e2e-spec.ts | 2 +- ...vent-types-webhooks.controller.e2e-spec.ts | 5 +- .../event-types-webhooks.controller.ts | 2 +- .../oauth-client-users.controller.e2e-spec.ts | 7 +- .../oauth-client-users.controller.ts | 2 +- ...uth-client-webhooks.controller.e2e-spec.ts | 2 +- .../oauth-client-webhooks.controller.ts | 2 +- .../oauth-clients.controller.e2e-spec.ts | 9 +- .../oauth-flow.controller.e2e-spec.ts | 3 +- .../oauth-clients/oauth-client.repository.ts | 3 +- .../oauth-clients-users-output.service.ts | 3 +- .../services/oauth-clients-users.service.ts | 5 +- .../oauth-clients-output.service.ts | 5 +- .../src/modules/ooo/services/ooo.service.ts | 4 +- .../organization-attributes.e2e-spec.ts | 2 +- ...rganization-attributes-options.e2e-spec.ts | 2 +- ...anizations-bookings.controller.e2e-spec.ts | 5 +- ...anizations-bookings.controller.e2e-spec.ts | 5 +- ...ations-delegation-credential.controller.ts | 4 +- ...nizations-delegation-credential.service.ts | 2 +- .../assign-all-team-members.e2e-spec.ts | 6 +- .../organizations-event-types.e2e-spec.ts | 5 +- .../event-types/services/output.service.ts | 8 +- ...izations-membership.controller.e2e-spec.ts | 5 +- .../organizations-membership.repository.ts | 2 +- ...tions-organizations.controller.e2e-spec.ts | 9 +- .../managed-organizations-output.service.ts | 2 +- ...ing-forms-responses.controller.e2e-spec.ts | 2 +- ...tions-routing-forms.controller.e2e-spec.ts | 8 +- .../organizations-schedules.e2e-spec.ts | 10 +- .../services/organizations-stripe.service.ts | 2 +- ...ions-teams-bookings.controller.e2e-spec.ts | 5 +- ...organizations-teams.controller.e2e-spec.ts | 9 +- .../index/organizations-teams.controller.ts | 5 +- ...s-memberships-guard.controller.e2e-spec.ts | 2 +- ...s-teams-memberships.controller.e2e-spec.ts | 5 +- ...ing-forms-responses.controller.e2e-spec.ts | 3 +- ...teams-routing-forms.controller.e2e-spec.ts | 2 +- ...-routing-forms-responses-output.service.ts | 2 +- .../organizations-teams-schedules.e2e-spec.ts | 10 +- ...-verified-resources.controller.e2e-spec.ts | 3 +- .../org-team-workflows.controller.e2e-spec.ts | 2 +- .../organizations-users-bookings.e2e-spec.ts | 5 +- .../organizations-users.controller.ts | 2 +- .../organizations-users.e2e-spec.ts | 6 +- .../index/organizations-users.repository.ts | 2 +- .../services/organizations-users-service.ts | 5 +- .../organizations-users-ooo.e2e-spec.ts | 3 +- .../organizations-webhooks.e2e-spec.ts | 2 +- .../organizations-webhooks.repository.ts | 2 +- .../src/modules/prisma/prisma-read.service.ts | 3 +- .../modules/prisma/prisma-write.service.ts | 3 +- .../controllers/routing-forms.e2e-spec.ts | 3 +- .../selected-calendars.controller.e2e-spec.ts | 5 +- .../controllers/slots.controller.e2e-spec.ts | 3 +- ...ic-event-type-slots.controller.e2e-spec.ts | 5 +- ...am-event-type-slots.controller.e2e-spec.ts | 5 +- ...eschedule-uid-slots.controller.e2e-spec.ts | 4 +- ...am-event-type-slots.controller.e2e-spec.ts | 5 +- ...er-event-type-slots.controller.e2e-spec.ts | 9 +- .../services/slots-output.service.ts | 4 +- .../services/slots.service.ts | 4 +- .../v2/src/modules/stripe/stripe.service.ts | 2 +- .../teams-event-types.controller.e2e-spec.ts | 11 +- .../teams-memberships.controller.e2e-spec.ts | 9 +- .../controllers/teams-schedules.e2e-spec.ts | 5 +- .../src/modules/tokens/tokens.repository.ts | 5 +- .../modules/users/services/users.service.ts | 2 +- .../v2/src/modules/users/users.repository.ts | 2 +- .../webhooks.controller.e2e-spec.ts | 2 +- .../controllers/webhooks.controller.ts | 2 +- .../decorators/get-webhook-decorator.ts | 2 +- .../guards/is-oauth-client-webhook-guard.ts | 2 +- .../is-user-event-type-webhook-guard.ts | 3 +- .../webhooks/guards/is-user-webhook-guard.ts | 2 +- .../webhooks/pipes/WebhookOutputPipe.ts | 3 +- .../modules/webhooks/webhooks.repository.ts | 2 +- .../modules/workflows/workflows.repository.ts | 2 +- apps/api/v2/swagger/documentation.json | 562 +- .../repository/attendee.repository.fixture.ts | 2 +- .../attributes.repository.fixture.ts | 5 +- .../booking-seat.repository.fixture.ts | 2 +- .../repository/bookings.repository.fixture.ts | 5 +- .../credentials.repository.fixture.ts | 5 +- .../event-types.repository.fixture.ts | 6 +- .../repository/hosts.repository.fixture.ts | 2 +- .../membership.repository.fixture.ts | 4 +- .../oauth-client.repository.fixture.ts | 5 +- .../repository/ooo.repository.fixture.ts | 5 +- .../organization.repository.fixture.ts | 5 +- .../repository/profiles.repository.fixture.ts | 5 +- .../routing-forms.repository.fixture.ts | 5 +- .../schedules.repository.fixture.ts | 5 +- .../selected-slot.repository.fixture.ts | 3 +- .../repository/team.repository.fixture.ts | 5 +- .../repository/users.repository.fixture.ts | 5 +- .../verified-resources.repository.fixture.ts | 5 +- .../repository/webhooks.repository.fixture.ts | 5 +- .../repository/workflow.repository.fixture.ts | 2 +- apps/api/v2/tsconfig.json | 3 +- .../[user]/[type]/page.tsx | 7 +- .../team/[slug]/[type]/queries.ts | 2 +- .../developer/api-keys/page.tsx | 3 +- .../app/api/cron/monthlyDigestEmail/route.ts | 2 +- .../__tests__/queued-response.test.ts | 1 + apps/web/app/api/teams/api/create/route.ts | 7 +- .../components/booking/BookingListItem.tsx | 2 +- .../steps-views/UserProfile.tsx | 1 + .../schemas/EventReservationSchema.tsx | 3 +- apps/web/instrumentation.ts | 7 +- .../[[...step]]/getServerSideProps.ts | 1 + apps/web/lib/hooks/useIsBookingPage.ts | 4 +- apps/web/lib/isPrismaObj.ts | 2 +- apps/web/lib/pages/auth/verify-email.test.ts | 18 + .../team/[slug]/[type]/getServerSideProps.tsx | 2 +- .../settings/security/password-view.tsx | 5 +- apps/web/pages/api/twilio/webhook.ts | 2 +- .../playwright/booking-race-condition.e2e.ts | 2 +- apps/web/playwright/bookings-list.e2e.ts | 2 +- .../cancellation-fee-warning.e2e.ts | 3 +- apps/web/playwright/fixtures/bookings.ts | 2 +- apps/web/playwright/fixtures/features.ts | 2 +- apps/web/playwright/fixtures/orgs.ts | 2 +- apps/web/playwright/fixtures/payments.ts | 2 +- apps/web/playwright/fixtures/users.ts | 14 +- .../web/playwright/integrations-stripe.e2e.ts | 2 +- apps/web/playwright/lib/teardown.ts | 3 +- .../__tests__/organizationHelpers.test.ts | 334 -- .../__tests__/routingFormHelpers.test.ts | 377 -- .../lib/test-helpers/teamHelpers.ts | 5 +- .../lib/[user]/[type]/getServerSideProps.ts | 2 +- .../server/lib/[user]/getServerSideProps.ts | 6 +- .../lib/getAvailabilityFromSchedule.test.ts | 2 +- .../test/lib/handleChildrenEventTypes.test.ts | 17 +- .../bookingScenario/MockPaymentService.ts | 2 +- .../utils/bookingScenario/bookingScenario.ts | 8 +- .../web/test/utils/bookingScenario/expects.ts | 7 +- docs/api-reference/v2/openapi.json | 5015 ++++------------- example-apps/credential-sync/package.json | 4 +- package.json | 4 +- .../app-store/_utils/CRMRoundRobinSkip.ts | 2 +- .../_utils/calendars/processExternalId.ts | 2 +- .../app-store/_utils/getAppKeysFromSlug.ts | 3 +- packages/app-store/_utils/getConnectedApps.ts | 5 +- .../app-store/_utils/getDefaultLocations.ts | 7 +- packages/app-store/_utils/installation.ts | 3 +- .../_utils/payments/handlePaymentSuccess.ts | 3 +- packages/app-store/_utils/stripe.ts | 12 +- packages/app-store/alby/lib/PaymentService.ts | 2 +- .../btcpayserver/lib/PaymentService.ts | 3 +- .../googlecalendar/lib/CalendarAuth.ts | 2 +- .../lib/__tests__/CalendarService.test.ts | 3 +- .../app-store/hitpay/lib/PaymentService.ts | 2 +- packages/app-store/hitpay/lib/types.d.ts | 2 +- .../ics-feedcalendar/lib/CalendarService.ts | 2 +- .../mock-payment-app/lib/PaymentService.ts | 2 +- .../app-store/paypal/lib/PaymentService.ts | 2 +- packages/app-store/paypal/lib/Paypal.ts | 2 +- .../routing-forms/api/responses/[formId].ts | 2 +- .../components/FormInputFields.tsx | 2 +- .../emails/components/ResponseEmail.tsx | 3 +- .../emails/templates/response-email.ts | 3 +- .../lib/formSubmissionUtils.test.ts | 5 + .../routing-forms/lib/formSubmissionUtils.ts | 6 +- .../lib/getEventTypeAppMetadata.ts | 2 +- .../routing-forms/lib/getSerializableForm.ts | 2 +- .../routing-forms/lib/handleResponse.test.ts | 12 + .../routing-forms/lib/handleResponse.ts | 4 +- .../lib/incompleteBooking/actionFunctions.ts | 3 +- .../lib/isFormCreateEditAllowed.ts | 3 +- .../routing-forms/lib/processRoute.tsx | 2 +- ...FormResponseRepository.integration-test.ts | 4 +- .../pages/route-builder/[...appPages].tsx | 2 +- .../app-store/routing-forms/types/types.d.ts | 2 +- packages/app-store/server.ts | 2 +- .../app-store/stripepayment/api/callback.ts | 3 +- .../stripepayment/lib/PaymentService.ts | 2 +- .../app-store/stripepayment/lib/customer.ts | 17 +- .../stripepayment/lib/team-billing.ts | 2 +- .../tandemvideo/lib/VideoApiAdapter.ts | 3 +- packages/app-store/utils.ts | 3 +- packages/app-store/vital/api/callback.ts | 2 +- packages/app-store/vital/api/save.ts | 2 +- packages/app-store/vital/api/token.ts | 2 +- packages/app-store/vital/api/webhook.ts | 2 +- packages/app-store/vital/lib/reschedule.ts | 2 +- .../wipemycalother/lib/reschedule.ts | 2 +- .../eslint-plugin/src/configs/recommended.ts | 1 + packages/eslint-plugin/src/rules/index.ts | 1 + .../src/rules/no-direct-prisma-import.ts | 43 + packages/features/CalendarEventBuilder.ts | 2 +- packages/features/apps/components/AllApps.tsx | 2 +- .../hooks/useRedirectToOnboardingIfNeeded.tsx | 2 +- .../auth/lib/identityProviderNameMap.ts | 7 - .../auth/lib/next-auth-custom-adapter.ts | 206 +- .../features/auth/lib/next-auth-options.ts | 98 +- .../features/auth/lib/passwordResetRequest.ts | 3 +- .../auth/signup/utils/prefillAvatar.ts | 2 +- packages/features/bookings/Booker/types.ts | 4 +- .../bookings/lib/bookingCreateBodySchema.ts} | 22 +- packages/features/bookings/lib/get-booking.ts | 4 +- .../bookings/lib/getBookingDataSchema.ts | 3 +- .../lib/getBookingDataSchemaForApi.ts | 3 +- .../features/bookings/lib/getBookingFields.ts | 2 +- .../bookings/lib/getCalEventResponses.ts | 2 +- .../features/bookings/lib/getCalendarLinks.ts | 2 +- .../bookings/lib/handleBookingRequested.ts | 3 +- .../bookings/lib/handleCancelBooking.ts | 2 +- .../bookings/lib/handleConfirmation.ts | 3 +- .../features/bookings/lib/handleNewBooking.ts | 21 +- .../lib/handleNewBooking/createBooking.ts | 4 +- .../lib/handleNewBooking/getBookingData.ts | 4 +- .../getCustomInputsResponses.ts | 2 +- .../handleNewBooking/getEventTypesFromDB.ts | 409 +- .../handleNewBooking/handleCustomInputs.ts | 3 +- .../handleNewBooking/loadAndValidateUsers.ts | 4 +- .../lib/handleNewBooking/loadUsers.ts | 5 +- .../originalRescheduledBookingUtils.ts | 6 +- ...scheduleNoShowTriggers.integration-test.ts | 2 +- .../test/buildDryRunBooking.test.ts | 6 +- .../test/buildEventForTeamEventType.test.ts | 6 + .../handleNewBooking/test/reschedule.test.ts | 11 + .../bookings/lib/handleNewBooking/types.ts | 6 +- .../features/bookings/lib/handlePayment.ts | 14 +- .../lib/handleSeats/create/createNewSeat.ts | 11 +- .../lib/lastAttendeeDeleteBooking.ts | 3 +- .../bookings/lib/handleSeats/types.d.ts | 2 +- packages/features/bookings/types.ts | 4 +- .../RetellAIPhoneServiceProvider.test.ts | 6 + .../retellAI/services/AgentService.ts | 5 +- .../calendar-cache.repository.interface.ts | 3 +- .../calendar-cache.repository.test.ts | 190 - .../calendar-cache.repository.ts | 3 +- .../credentials/handleDeleteCredential.ts | 2 +- .../data-table/lib/__tests__/server.test.ts | 3 +- packages/features/data-table/lib/server.ts | 2 +- .../ee/billing/credit-service.test.ts | 47 +- .../features/ee/billing/credit-service.ts | 18 +- ...ganization-billing.repository.interface.ts | 2 +- .../organizations/organization-billing.ts | 2 +- .../ee/billing/teams/internal-team-billing.ts | 4 +- .../team-billing.repository.interface.ts | 2 +- .../features/ee/billing/teams/team-billing.ts | 2 +- .../lib/ImpersonationProvider.test.ts | 8 +- .../lib/ImpersonationProvider.ts | 2 +- .../hooks/useLockedFieldsManager.tsx | 21 +- .../lib/handleChildrenEventTypes.ts | 25 +- .../ee/organizations/lib/orgDomains.ts | 2 +- .../pages/settings/admin/AdminOrgEditPage.tsx | 4 +- .../settings/other-team-profile-view.tsx | 2 +- .../organizations/pages/settings/profile.tsx | 2 +- packages/features/ee/payments/api/webhook.ts | 2 +- .../ee/payments/components/Payment.tsx | 2 +- .../handleRescheduleEventManager.ts | 5 +- .../ee/support/lib/intercom/provider.tsx | 2 +- .../ee/teams/pages/team-profile-view.tsx | 2 +- .../ee/users/pages/users-add-view.tsx | 4 +- .../ee/users/schemas/userBodySchema.ts | 29 +- .../features/ee/users/server/trpc-router.ts | 7 +- .../workflows/components/WorkflowListPage.tsx | 2 +- .../components/WorkflowStepContainer.tsx | 7 +- .../ee/workflows/lib/actionHelperFunctions.ts | 2 +- .../ee/workflows/lib/getWorkflowReminders.ts | 6 +- .../ee/workflows/lib/test/workflows.test.ts | 3 +- .../features/ee/workflows/pages/workflow.tsx | 2 +- .../components/CreateEventTypeDialog.tsx | 2 +- .../eventtypes/components/DuplicateDialog.tsx | 2 +- .../components/EventTypeDescription.tsx | 22 +- .../tabs/instant/InstantEventController.tsx | 2 +- .../tabs/webhooks/EventWebhooksTab.tsx | 2 +- .../features/eventtypes/lib/getPublicEvent.ts | 301 +- .../lib/isCurrentlyAvailable.test.ts | 33 +- packages/features/eventtypes/lib/types.ts | 66 +- .../features.repository.integration-test.ts | 2 - .../features/flags/features.repository.ts | 3 +- packages/features/handleCreatePhoneCall.ts | 2 +- ...-response-denormalized.integration-test.ts | 2 +- ...ng-form-response-field.integration-test.ts | 2 +- .../insights/server/__tests__/events.test.ts | 2 + .../buildBaseWhereCondition.test.ts | 2 +- .../server/buildBaseWhereCondition.ts | 144 + .../insights/server/routing-events.ts | 2 +- .../features/insights/server/trpc-router.ts | 2 +- .../instant-meeting/handleInstantMeeting.ts | 2 +- .../__tests__/resource-permissions.test.ts | 11 + .../features/pbac/lib/resource-permissions.ts | 4 +- .../permission-check.service.test.ts | 6 + .../__tests__/permission-diff.service.test.ts | 3 +- .../get-platform-params.ts | 2 +- ...tform-oauth-client.repository.interface.ts | 2 +- .../routing-forms/lib/getRoutedUrl.test.ts | 1 + .../shell/navigation/NavigationItem.tsx | 2 + packages/features/tasker/repository.ts | 3 +- .../tasker/tasks/crm/createCRMEvent.ts | 3 +- .../features/users/lib/userDeletionService.ts | 2 +- .../users/users.repository.interface.ts | 2 +- .../features/watchlist/watchlist.model.ts | 4 +- .../webhooks/lib/WebhookService.test.ts | 8 +- .../features/webhooks/lib/scheduleTrigger.ts | 5 +- packages/features/webhooks/lib/sendPayload.ts | 2 +- packages/lib/CalendarManager.test.ts | 8 +- packages/lib/CalendarService.ts | 2 +- packages/lib/EventManager.test.ts | 8 +- packages/lib/EventManager.ts | 4 +- .../lib/apps/getEnabledAppsFromCredentials.ts | 3 +- packages/lib/availability.ts | 3 +- packages/lib/bookingSuccessRedirect.ts | 2 +- .../filterHostsByLeadThreshold.test.ts | 33 +- packages/lib/bookings/getRoutedUsers.test.ts | 8 +- packages/lib/buildCalEventFromBooking.ts | 3 +- .../lib/builders/CalendarEvent/builder.ts | 121 +- packages/lib/builders/CalendarEvent/class.ts | 3 +- .../lib/builders/CalendarEvent/director.ts | 3 +- .../lib/checkRateLimitAndThrowError.test.ts | 6 + packages/lib/checkRateLimitAndThrowError.ts | 2 +- packages/lib/defaultEvents.ts | 5 +- packages/lib/entityPermissionUtils.server.ts | 4 +- packages/lib/event-types/getEventTypeById.ts | 3 +- .../lib/event-types/getEventTypesPublic.ts | 7 +- .../checkIfFreeEmailDomain.test.ts | 37 +- packages/lib/getBooking.tsx | 4 +- packages/lib/getBusyTimes.test.ts | 8 +- packages/lib/getBusyTimes.ts | 5 +- packages/lib/getCalendarsEvents.test.ts | 4 +- packages/lib/getUserAvailability.ts | 16 +- packages/lib/hooks/useCreateEventType.ts | 4 +- packages/lib/isOutOfBounds.tsx | 3 +- packages/lib/isPrismaObj.ts | 2 +- packages/lib/payment/deletePayment.ts | 4 +- packages/lib/payment/handleNoShowFee.ts | 3 +- packages/lib/payment/handlePaymentRefund.ts | 4 +- packages/lib/payment/processPaymentRefund.ts | 3 +- packages/lib/piiFreeData.ts | 3 +- ...dTeamMembersMatchingAttributeLogic.test.ts | 7 +- packages/lib/rateLimit.ts | 2 + .../lib/schedules/transformers/for-atom.ts | 3 +- .../server/findUsersForAvailabilityCheck.ts | 3 +- packages/lib/server/getLuckyUser.ts | 6 +- .../lib/server/getServerErrorFromUnknown.ts | 2 +- packages/lib/server/queries/teams/index.ts | 21 +- .../repository/PrismaAgentRepository.ts | 3 +- .../repository/PrismaApiKeyRepository.ts | 16 +- .../PrismaAttributeOptionRepository.ts | 3 +- .../PrismaAttributeToUserRepository.ts | 3 +- .../repository/PrismaPhoneNumberRepository.ts | 5 +- ...RoutingFormResponseRepository.interface.ts | 2 +- .../server/repository/TeamRepository.test.ts | 3 +- packages/lib/server/repository/booking.ts | 3 +- .../lib/server/repository/bookingReference.ts | 3 +- packages/lib/server/repository/credential.ts | 3 +- .../server/repository/delegationCredential.ts | 3 +- packages/lib/server/repository/deployment.ts | 3 +- .../server/repository/destinationCalendar.ts | 3 +- .../lib/server/repository/dto/SelectedSlot.ts | 2 +- .../server/repository/dto/hashedLinkSelect.ts | 2 +- .../server/repository/eventTypeRepository.ts | 3 +- packages/lib/server/repository/membership.ts | 1 + packages/lib/server/repository/profile.ts | 2 +- .../lib/server/repository/selectedCalendar.ts | 10 +- packages/lib/server/repository/team.ts | 4 +- packages/lib/server/repository/user.ts | 5 +- .../server/repository/workflow-permissions.ts | 3 +- packages/lib/server/repository/workflow.ts | 62 +- .../service/InsightsBookingBaseService.ts | 2 +- .../service/InsightsRoutingBaseService.ts | 2 +- ...InsightsBookingService.integration-test.ts | 4 +- ...InsightsRoutingService.integration-test.ts | 4 +- .../__tests__/teamService.integration-test.ts | 152 +- .../lib/server/service/eventTypeService.ts | 3 +- .../service/teamService.alternative.test.ts | 7 + packages/lib/server/service/teamService.ts | 5 +- packages/lib/server/serviceAccountKey.ts | 2 +- packages/lib/test/builder.ts | 2 +- packages/platform/atoms/booker/types.ts | 7 +- .../atoms/hooks/bookings/useCreateBooking.ts | 2 +- .../hooks/bookings/useCreateInstantBooking.ts | 2 +- .../hooks/bookings/useHandleBookEvent.ts | 2 +- packages/platform/atoms/package.json | 2 +- packages/platform/examples/base/package.json | 4 +- .../examples/base/src/lib/prismaClient.ts | 3 + packages/platform/libraries/vite.config.js | 7 +- packages/prisma/__mocks__/prisma.ts | 11 + packages/prisma/client/index.d.ts | 1 - packages/prisma/client/index.js | 1 - .../extensions/booking-idempotency-key.ts | 3 +- .../disallow-undefined-delete-update-many.ts | 2 +- .../prisma/extensions/exclude-locked-users.ts | 2 +- .../exclude-pending-payment-teams.ts | 2 +- packages/prisma/extensions/usage-tracking.ts | 4 +- packages/prisma/index.ts | 12 +- packages/prisma/is-prisma-available-check.ts | 16 +- .../prisma/middleware/bookingReference.ts | 2 +- .../migration.sql | 11 + .../prisma/migrations/migration_lock.toml | 4 +- packages/prisma/package.json | 12 +- packages/prisma/schema.prisma | 105 +- packages/prisma/seed-app-store.ts | 2 +- packages/prisma/seed-insights.ts | 4 +- packages/prisma/seed-utils.ts | 2 +- packages/prisma/seed.ts | 6 +- packages/prisma/selects/app.ts | 2 +- packages/prisma/selects/booking.ts | 2 +- packages/prisma/selects/credential.ts | 2 +- packages/prisma/selects/event-types.ts | 3 +- packages/prisma/selects/payment.ts | 2 +- packages/prisma/selects/user.ts | 28 +- packages/prisma/zod-utils.ts | 5 +- packages/prisma/zod/custom/eventtype.ts | 54 - packages/prisma/zod/webhook.ts | 45 - .../trpc/server/createNextApiHandler.test.ts | 6 + .../server/middlewares/sessionMiddleware.ts | 2 +- .../routing-forms/formMutation.handler.ts | 4 +- .../unlinkConnectedAccount.handler.spec.ts | 71 - .../unlinkConnectedAccount.handler.test.ts | 51 + .../unlinkConnectedAccount.handler.ts | 22 +- .../viewer/apiKeys/_auth-middleware.ts | 3 +- .../routers/viewer/apiKeys/list.handler.ts | 6 +- .../routers/viewer/apps/listLocal.handler.ts | 3 +- .../routers/viewer/apps/saveKeys.handler.ts | 3 +- .../schedule/duplicate.handler.ts | 3 +- .../team/listTeamAvailability.handler.ts | 3 +- .../routers/viewer/availability/util.test.ts | 20 +- .../routers/viewer/availability/util.ts | 3 +- .../viewer/bookings/confirm.handler.ts | 3 +- .../editLocation.handler.test.ts | 8 +- .../routers/viewer/bookings/get.handler.ts | 2 +- .../bookings/requestReschedule.handler.ts | 2 +- .../server/routers/viewer/bookings/types.ts | 2 +- .../server/routers/viewer/bookings/util.ts | 5 +- .../credits/downloadExpenseLog.handler.ts | 2 +- .../getEventTypesFromGroup.handler.ts | 3 +- .../viewer/eventTypes/heavy/create.handler.ts | 7 +- .../viewer/eventTypes/heavy/create.schema.ts | 2 +- .../heavy/duplicate.handler.test.ts | 4 +- .../eventTypes/heavy/duplicate.handler.ts | 3 +- .../eventTypes/heavy/duplicate.schema.ts | 2 +- .../viewer/eventTypes/heavy/update.handler.ts | 10 +- .../listWithTeam.handler.integration-test.ts | 2 +- .../viewer/eventTypes/listWithTeam.handler.ts | 3 +- .../server/routers/viewer/eventTypes/types.ts | 66 +- .../viewer/me/updateProfile.handler.ts | 2 +- ...outOfOfficeCreateOrUpdate.handler.test.ts} | 18 +- .../ooo/outOfOfficeCreateOrUpdate.handler.ts | 2 +- .../addMembersToEventTypes.handler.ts | 3 +- .../organizations/adminUpdate.handler.ts | 3 +- .../organizations/createTeams.handler.ts | 3 +- .../organizations/listMembers.handler.test.ts | 40 +- .../listOtherTeamMembers.handler.ts | 2 +- .../viewer/organizations/update.handler.ts | 3 +- .../organizations/updateUser.handler.ts | 3 +- ...rsMatchingAttributeLogicOfRoute.handler.ts | 7 +- .../teams/addMembersToEventTypes.handler.ts | 3 +- .../routers/viewer/teams/get.handler.test.ts | 150 +- .../teams/getUserConnectedApps.handler.ts | 3 +- .../viewer/teams/hasActiveTeamPlan.handler.ts | 3 +- .../inviteMember/inviteMember.handler.test.ts | 11 +- .../inviteMember/inviteMemberUtils.test.ts | 6 + .../viewer/teams/inviteMember/types.ts | 10 +- .../viewer/teams/legacyListMembers.handler.ts | 3 +- .../viewer/teams/listMembers.handler.ts | 3 +- .../routers/viewer/teams/listMembers.test.ts | 10 +- .../routers/viewer/teams/publish.handler.ts | 3 +- .../getRoundRobinHostsToReasign.handler.ts | 2 +- .../routers/viewer/teams/update.handler.ts | 3 +- .../routers/viewer/webhook/create.handler.ts | 4 +- .../routers/viewer/webhook/delete.handler.ts | 3 +- .../routers/viewer/webhook/list.handler.ts | 3 +- .../server/routers/viewer/webhook/util.ts | 3 +- .../viewer/workflows/create.handler.ts | 3 +- .../routers/viewer/workflows/util.test.ts | 8 + .../server/routers/viewer/workflows/util.ts | 2 +- packages/types/App.d.ts | 3 +- packages/types/Calendar.d.ts | 12 +- packages/types/Credential.d.ts | 2 +- packages/types/PaymentService.d.ts | 3 +- packages/types/next-auth.d.ts | 2 +- tests/libs/__mocks__/prisma.ts | 22 +- turbo.json | 17 +- yarn.lock | 4958 +--------------- 623 files changed, 4363 insertions(+), 12559 deletions(-) delete mode 100644 apps/web/playwright/lib/test-helpers/__tests__/organizationHelpers.test.ts delete mode 100644 apps/web/playwright/lib/test-helpers/__tests__/routingFormHelpers.test.ts create mode 100644 packages/eslint-plugin/src/rules/no-direct-prisma-import.ts delete mode 100644 packages/features/auth/lib/identityProviderNameMap.ts rename packages/{prisma/zod/custom/booking.ts => features/bookings/lib/bookingCreateBodySchema.ts} (89%) delete mode 100644 packages/features/calendar-cache/calendar-cache.repository.test.ts rename packages/features/insights/server/{__tests__ => }/buildBaseWhereCondition.test.ts (99%) create mode 100644 packages/features/insights/server/buildBaseWhereCondition.ts create mode 100644 packages/prisma/__mocks__/prisma.ts delete mode 100644 packages/prisma/client/index.d.ts delete mode 100644 packages/prisma/client/index.js create mode 100644 packages/prisma/migrations/20250512205531_upgrade_prisma_to_6_7_0/migration.sql delete mode 100755 packages/prisma/zod/custom/eventtype.ts delete mode 100755 packages/prisma/zod/webhook.ts delete mode 100644 packages/trpc/server/routers/loggedInViewer/unlinkConnectedAccount.handler.spec.ts create mode 100644 packages/trpc/server/routers/loggedInViewer/unlinkConnectedAccount.handler.test.ts rename packages/trpc/server/routers/viewer/bookings/{__tests__ => }/editLocation.handler.test.ts (98%) rename packages/trpc/server/routers/viewer/{__tests__/outOfOffice.handler.test.ts => ooo/outOfOfficeCreateOrUpdate.handler.test.ts} (87%) diff --git a/.gitignore b/.gitignore index 1be6666c92..8574f3d252 100644 --- a/.gitignore +++ b/.gitignore @@ -66,7 +66,8 @@ tsconfig.tsbuildinfo .turbo # Prisma generated files -packages/prisma/zod/*.ts +packages/prisma/client/* +packages/prisma/zod/**/*.ts packages/prisma/enums # Builds diff --git a/apps/api/v1/lib/validations/api-key.ts b/apps/api/v1/lib/validations/api-key.ts index c0afb8eb16..beb7081498 100644 --- a/apps/api/v1/lib/validations/api-key.ts +++ b/apps/api/v1/lib/validations/api-key.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -import { _ApiKeyModel as ApiKey } from "@calcom/prisma/zod"; +import { ApiKeySchema as ApiKey } from "@calcom/prisma/zod/modelSchema/ApiKeySchema"; export const apiKeyCreateBodySchema = ApiKey.pick({ note: true, diff --git a/apps/api/v1/lib/validations/attendee.ts b/apps/api/v1/lib/validations/attendee.ts index 17338f0e8f..f2e69cf153 100644 --- a/apps/api/v1/lib/validations/attendee.ts +++ b/apps/api/v1/lib/validations/attendee.ts @@ -1,11 +1,11 @@ import { z } from "zod"; import { emailSchema } from "@calcom/lib/emailSchema"; -import { _AttendeeModel as Attendee } from "@calcom/prisma/zod"; +import { AttendeeSchema } from "@calcom/prisma/zod/modelSchema/AttendeeSchema"; import { timeZone } from "~/lib/validations/shared/timeZone"; -export const schemaAttendeeBaseBodyParams = Attendee.pick({ +export const schemaAttendeeBaseBodyParams = AttendeeSchema.pick({ bookingId: true, email: true, name: true, @@ -31,7 +31,7 @@ const schemaAttendeeEditParams = z export const schemaAttendeeEditBodyParams = schemaAttendeeBaseBodyParams.merge(schemaAttendeeEditParams); export const schemaAttendeeCreateBodyParams = schemaAttendeeBaseBodyParams.merge(schemaAttendeeCreateParams); -export const schemaAttendeeReadPublic = Attendee.pick({ +export const schemaAttendeeReadPublic = AttendeeSchema.pick({ id: true, bookingId: true, name: true, diff --git a/apps/api/v1/lib/validations/availability.ts b/apps/api/v1/lib/validations/availability.ts index 5d62a9fe34..ffcd622730 100644 --- a/apps/api/v1/lib/validations/availability.ts +++ b/apps/api/v1/lib/validations/availability.ts @@ -1,16 +1,17 @@ import { z } from "zod"; -import { _AvailabilityModel as Availability, _ScheduleModel as Schedule } from "@calcom/prisma/zod"; import { denullishShape } from "@calcom/prisma/zod-utils"; +import { AvailabilitySchema } from "@calcom/prisma/zod/modelSchema/AvailabilitySchema"; +import { ScheduleSchema } from "@calcom/prisma/zod/modelSchema/ScheduleSchema"; export const schemaAvailabilityBaseBodyParams = /** We make all these properties required */ denullishShape( - Availability.pick({ + AvailabilitySchema.pick({ /** We need to pass the schedule where this availability belongs to */ scheduleId: true, }) ); -export const schemaAvailabilityReadPublic = Availability.pick({ +export const schemaAvailabilityReadPublic = AvailabilitySchema.pick({ id: true, startTime: true, endTime: true, @@ -19,7 +20,7 @@ export const schemaAvailabilityReadPublic = Availability.pick({ days: true, // eventTypeId: true /** @deprecated */, // userId: true /** @deprecated */, -}).merge(z.object({ success: z.boolean().optional(), Schedule: Schedule.partial() }).partial()); +}).merge(z.object({ success: z.boolean().optional(), Schedule: ScheduleSchema.partial() }).partial()); const schemaAvailabilityCreateParams = z .object({ diff --git a/apps/api/v1/lib/validations/booking-reference.ts b/apps/api/v1/lib/validations/booking-reference.ts index 662285b690..64cef76c14 100644 --- a/apps/api/v1/lib/validations/booking-reference.ts +++ b/apps/api/v1/lib/validations/booking-reference.ts @@ -1,7 +1,7 @@ -import { _BookingReferenceModel as BookingReference } from "@calcom/prisma/zod"; import { denullishShape } from "@calcom/prisma/zod-utils"; +import { BookingReferenceSchema } from "@calcom/prisma/zod/modelSchema/BookingReferenceSchema"; -export const schemaBookingReferenceBaseBodyParams = BookingReference.pick({ +export const schemaBookingReferenceBaseBodyParams = BookingReferenceSchema.pick({ type: true, bookingId: true, uid: true, @@ -11,7 +11,7 @@ export const schemaBookingReferenceBaseBodyParams = BookingReference.pick({ deleted: true, }).partial(); -export const schemaBookingReferenceReadPublic = BookingReference.pick({ +export const schemaBookingReferenceReadPublic = BookingReferenceSchema.pick({ id: true, type: true, bookingId: true, @@ -22,7 +22,7 @@ export const schemaBookingReferenceReadPublic = BookingReference.pick({ deleted: true, }); -export const schemaBookingCreateBodyParams = BookingReference.omit({ id: true, bookingId: true }) - .merge(denullishShape(BookingReference.pick({ bookingId: true }))) +export const schemaBookingCreateBodyParams = BookingReferenceSchema.omit({ id: true, bookingId: true }) + .merge(denullishShape(BookingReferenceSchema.pick({ bookingId: true }))) .strict(); export const schemaBookingEditBodyParams = schemaBookingCreateBodyParams.partial(); diff --git a/apps/api/v1/lib/validations/booking.ts b/apps/api/v1/lib/validations/booking.ts index 6e5c99c743..bd65c53501 100644 --- a/apps/api/v1/lib/validations/booking.ts +++ b/apps/api/v1/lib/validations/booking.ts @@ -1,15 +1,13 @@ import { z } from "zod"; -import { - _AttendeeModel, - _BookingModel as Booking, - _EventTypeModel, - _PaymentModel, - _TeamModel, - _UserModel, -} from "@calcom/prisma/zod"; +import { extendedBookingCreateBody } from "@calcom/features/bookings/lib/bookingCreateBodySchema"; import { iso8601 } from "@calcom/prisma/zod-utils"; -import { extendedBookingCreateBody } from "@calcom/prisma/zod/custom/booking"; +import { AttendeeSchema } from "@calcom/prisma/zod/modelSchema/AttendeeSchema"; +import { BookingSchema as Booking } from "@calcom/prisma/zod/modelSchema/BookingSchema"; +import { EventTypeSchema } from "@calcom/prisma/zod/modelSchema/EventTypeSchema"; +import { PaymentSchema } from "@calcom/prisma/zod/modelSchema/PaymentSchema"; +import { TeamSchema } from "@calcom/prisma/zod/modelSchema/TeamSchema"; +import { UserSchema } from "@calcom/prisma/zod/modelSchema/UserSchema"; import { schemaQueryUserId } from "./shared/queryUserId"; @@ -72,17 +70,16 @@ export const schemaBookingEditBodyParams = schemaBookingBaseBodyParams .merge(schemaBookingEditParams) .omit({ uid: true }); -const teamSchema = _TeamModel.pick({ +const teamSchema = TeamSchema.pick({ name: true, slug: true, }); export const schemaBookingReadPublic = Booking.extend({ - eventType: _EventTypeModel - .pick({ - title: true, - slug: true, - }) + eventType: EventTypeSchema.pick({ + title: true, + slug: true, + }) .merge( z.object({ team: teamSchema.nullish(), @@ -91,7 +88,7 @@ export const schemaBookingReadPublic = Booking.extend({ .nullish(), attendees: z .array( - _AttendeeModel.pick({ + AttendeeSchema.pick({ id: true, email: true, name: true, @@ -100,17 +97,15 @@ export const schemaBookingReadPublic = Booking.extend({ }) ) .optional(), - user: _UserModel - .pick({ - email: true, - name: true, - timeZone: true, - locale: true, - }) - .nullish(), + user: UserSchema.pick({ + email: true, + name: true, + timeZone: true, + locale: true, + }).nullish(), payment: z .array( - _PaymentModel.pick({ + PaymentSchema.pick({ id: true, success: true, paymentOption: true, @@ -140,3 +135,8 @@ export const schemaBookingReadPublic = Booking.extend({ rescheduledBy: true, createdAt: true, }); + +export { + bookingCreateSchemaLegacyPropsForApi, + bookingCreateBodySchemaForApi, +} from "@calcom/features/bookings/lib/bookingCreateBodySchema"; diff --git a/apps/api/v1/lib/validations/destination-calendar.ts b/apps/api/v1/lib/validations/destination-calendar.ts index 15d1d8672c..041c2b5f86 100644 --- a/apps/api/v1/lib/validations/destination-calendar.ts +++ b/apps/api/v1/lib/validations/destination-calendar.ts @@ -1,8 +1,8 @@ import { z } from "zod"; -import { _DestinationCalendarModel as DestinationCalendar } from "@calcom/prisma/zod"; +import { DestinationCalendarSchema } from "@calcom/prisma/zod/modelSchema/DestinationCalendarSchema"; -export const schemaDestinationCalendarBaseBodyParams = DestinationCalendar.pick({ +export const schemaDestinationCalendarBaseBodyParams = DestinationCalendarSchema.pick({ integration: true, externalId: true, eventTypeId: true, @@ -38,7 +38,7 @@ export const schemaDestinationCalendarEditBodyParams = schemaDestinationCalendar schemaDestinationCalendarEditParams ); -export const schemaDestinationCalendarReadPublic = DestinationCalendar.pick({ +export const schemaDestinationCalendarReadPublic = DestinationCalendarSchema.pick({ id: true, integration: true, externalId: true, diff --git a/apps/api/v1/lib/validations/event-type-custom-input.ts b/apps/api/v1/lib/validations/event-type-custom-input.ts index 8a9fb3dbbe..1426e643c0 100644 --- a/apps/api/v1/lib/validations/event-type-custom-input.ts +++ b/apps/api/v1/lib/validations/event-type-custom-input.ts @@ -1,10 +1,10 @@ -import { _EventTypeCustomInputModel as EventTypeCustomInput } from "@calcom/prisma/zod"; +import { EventTypeCustomInputSchema } from "@calcom/prisma/zod/modelSchema/EventTypeCustomInputSchema"; -export const schemaEventTypeCustomInputBaseBodyParams = EventTypeCustomInput.omit({ +export const schemaEventTypeCustomInputBaseBodyParams = EventTypeCustomInputSchema.omit({ id: true, }); -export const schemaEventTypeCustomInputPublic = EventTypeCustomInput.omit({}); +export const schemaEventTypeCustomInputPublic = EventTypeCustomInputSchema.omit({}); export const schemaEventTypeCustomInputBodyParams = schemaEventTypeCustomInputBaseBodyParams.strict(); diff --git a/apps/api/v1/lib/validations/event-type.ts b/apps/api/v1/lib/validations/event-type.ts index a1d855c7ac..ec40237fb4 100644 --- a/apps/api/v1/lib/validations/event-type.ts +++ b/apps/api/v1/lib/validations/event-type.ts @@ -6,8 +6,9 @@ import { MIN_EVENT_DURATION_MINUTES, } from "@calcom/lib/constants"; import slugify from "@calcom/lib/slugify"; -import { _EventTypeModel as EventType, _HostModel } from "@calcom/prisma/zod"; import { customInputSchema, eventTypeBookingFields } from "@calcom/prisma/zod-utils"; +import { EventTypeSchema } from "@calcom/prisma/zod/modelSchema/EventTypeSchema"; +import { HostSchema } from "@calcom/prisma/zod/modelSchema/HostSchema"; import { Frequency } from "~/lib/types"; @@ -24,7 +25,7 @@ const recurringEventInputSchema = z.object({ tzid: timeZone.optional(), }); -const hostSchema = _HostModel.pick({ +const hostSchema = HostSchema.pick({ isFixed: true, userId: true, scheduleId: true, @@ -35,7 +36,7 @@ export const childrenSchema = z.object({ userId: z.number().int(), }); -export const schemaEventTypeBaseBodyParams = EventType.pick({ +export const schemaEventTypeBaseBodyParams = EventTypeSchema.pick({ title: true, description: true, slug: true, @@ -117,7 +118,7 @@ const schemaEventTypeEditParams = z .strict(); export const schemaEventTypeEditBodyParams = schemaEventTypeBaseBodyParams.merge(schemaEventTypeEditParams); -export const schemaEventTypeReadPublic = EventType.pick({ +export const schemaEventTypeReadPublic = EventTypeSchema.pick({ id: true, title: true, slug: true, diff --git a/apps/api/v1/lib/validations/membership.ts b/apps/api/v1/lib/validations/membership.ts index fc6ac42208..906a250dff 100644 --- a/apps/api/v1/lib/validations/membership.ts +++ b/apps/api/v1/lib/validations/membership.ts @@ -1,19 +1,24 @@ import { z } from "zod"; import { MembershipRole } from "@calcom/prisma/enums"; -import { _MembershipModel as Membership, _TeamModel } from "@calcom/prisma/zod"; import { stringOrNumber } from "@calcom/prisma/zod-utils"; +import { MembershipSchema } from "@calcom/prisma/zod/modelSchema/MembershipSchema"; +import { TeamSchema } from "@calcom/prisma/zod/modelSchema/TeamSchema"; import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString"; import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt"; -export const schemaMembershipBaseBodyParams = Membership.omit({}); +export const schemaMembershipBaseBodyParams = MembershipSchema.omit({}); const schemaMembershipRequiredParams = z.object({ teamId: z.number(), }); -export const membershipCreateBodySchema = Membership.omit({ id: true }) +export const membershipCreateBodySchema = MembershipSchema.omit({ + id: true, + createdAt: true, + updatedAt: true, +}) .partial({ accepted: true, role: true, @@ -26,11 +31,13 @@ export const membershipCreateBodySchema = Membership.omit({ id: true }) ...v, })); -export const membershipEditBodySchema = Membership.omit({ +export const membershipEditBodySchema = MembershipSchema.omit({ /** To avoid complication, let's avoid updating these, instead you can delete and create a new invite */ teamId: true, userId: true, id: true, + createdAt: true, + updatedAt: true, }) .partial({ accepted: true, @@ -43,7 +50,7 @@ export const schemaMembershipBodyParams = schemaMembershipBaseBodyParams.merge( schemaMembershipRequiredParams ); -export const schemaMembershipPublic = Membership.merge(z.object({ team: _TeamModel }).partial()); +export const schemaMembershipPublic = MembershipSchema.merge(z.object({ team: TeamSchema }).partial()); /** We extract userId and teamId from compound ID string */ export const membershipIdSchema = schemaQueryIdAsString diff --git a/apps/api/v1/lib/validations/payment.ts b/apps/api/v1/lib/validations/payment.ts index 8c3b08413b..b8d544730a 100644 --- a/apps/api/v1/lib/validations/payment.ts +++ b/apps/api/v1/lib/validations/payment.ts @@ -1,6 +1,6 @@ -import { _PaymentModel as Payment } from "@calcom/prisma/zod"; +import { PaymentSchema } from "@calcom/prisma/zod/modelSchema/PaymentSchema"; -export const schemaPaymentPublic = Payment.pick({ +export const schemaPaymentPublic = PaymentSchema.pick({ id: true, amount: true, success: true, diff --git a/apps/api/v1/lib/validations/reminder-mail.ts b/apps/api/v1/lib/validations/reminder-mail.ts index 635dc84dac..4f8af42d77 100644 --- a/apps/api/v1/lib/validations/reminder-mail.ts +++ b/apps/api/v1/lib/validations/reminder-mail.ts @@ -1,10 +1,10 @@ import { z } from "zod"; -import { _ReminderMailModel as ReminderMail } from "@calcom/prisma/zod"; +import { ReminderMailSchema } from "@calcom/prisma/zod/modelSchema/ReminderMailSchema"; -export const schemaReminderMailBaseBodyParams = ReminderMail.omit({ id: true }).partial(); +export const schemaReminderMailBaseBodyParams = ReminderMailSchema.omit({ id: true }).partial(); -export const schemaReminderMailPublic = ReminderMail.omit({}); +export const schemaReminderMailPublic = ReminderMailSchema.omit({}); const schemaReminderMailRequiredParams = z.object({ referenceId: z.number().int(), diff --git a/apps/api/v1/lib/validations/schedule.ts b/apps/api/v1/lib/validations/schedule.ts index ed70775600..25a11ab7aa 100644 --- a/apps/api/v1/lib/validations/schedule.ts +++ b/apps/api/v1/lib/validations/schedule.ts @@ -1,11 +1,12 @@ import { z } from "zod"; import dayjs from "@calcom/dayjs"; -import { _ScheduleModel as Schedule, _AvailabilityModel as Availability } from "@calcom/prisma/zod"; +import { AvailabilitySchema } from "@calcom/prisma/zod/modelSchema/AvailabilitySchema"; +import { ScheduleSchema } from "@calcom/prisma/zod/modelSchema/ScheduleSchema"; import { timeZone } from "./shared/timeZone"; -const schemaScheduleBaseBodyParams = Schedule.omit({ id: true, timeZone: true }).partial(); +const schemaScheduleBaseBodyParams = ScheduleSchema.omit({ id: true, timeZone: true }).partial(); export const schemaSingleScheduleBodyParams = schemaScheduleBaseBodyParams.merge( z.object({ userId: z.number().optional(), timeZone: timeZone.optional() }) @@ -17,12 +18,12 @@ export const schemaCreateScheduleBodyParams = schemaScheduleBaseBodyParams.merge export const schemaSchedulePublic = z .object({ id: z.number() }) - .merge(Schedule) + .merge(ScheduleSchema) .merge( z.object({ availability: z .array( - Availability.pick({ + AvailabilitySchema.pick({ id: true, eventTypeId: true, date: true, diff --git a/apps/api/v1/lib/validations/selected-calendar.ts b/apps/api/v1/lib/validations/selected-calendar.ts index 1e1c2a5261..1e77352bc8 100644 --- a/apps/api/v1/lib/validations/selected-calendar.ts +++ b/apps/api/v1/lib/validations/selected-calendar.ts @@ -1,28 +1,22 @@ import z from "zod"; -import { _SelectedCalendarModel as SelectedCalendar } from "@calcom/prisma/zod"; +import { SelectedCalendarSchema } from "@calcom/prisma/zod/modelSchema/SelectedCalendarSchema"; import { schemaQueryIdAsString } from "./shared/queryIdString"; import { schemaQueryIdParseInt } from "./shared/queryIdTransformParseInt"; -export const schemaSelectedCalendarBaseBodyParams = SelectedCalendar; +export const schemaSelectedCalendarBaseBodyParams = SelectedCalendarSchema; -export const schemaSelectedCalendarPublic = SelectedCalendar.omit({}); +export const schemaSelectedCalendarPublic = SelectedCalendarSchema.omit({}); export const schemaSelectedCalendarBodyParams = schemaSelectedCalendarBaseBodyParams - .partial({ + .pick({ + integration: true, + externalId: true, userId: true, }) - .omit({ - // id will be set by the database - id: true, - // No eventTypeId support in API v1 - eventTypeId: true, - - /** No watch related fields support in API v1 */ - watchAttempts: true, - unwatchAttempts: true, - maxAttempts: true, + .partial({ + userId: true, }); export const schemaSelectedCalendarUpdateBodyParams = schemaSelectedCalendarBaseBodyParams diff --git a/apps/api/v1/lib/validations/team.ts b/apps/api/v1/lib/validations/team.ts index 9a99327252..a1666a638f 100644 --- a/apps/api/v1/lib/validations/team.ts +++ b/apps/api/v1/lib/validations/team.ts @@ -1,8 +1,8 @@ import { z } from "zod"; -import { _TeamModel as Team } from "@calcom/prisma/zod"; +import { TeamSchema } from "@calcom/prisma/zod/modelSchema/TeamSchema"; -export const schemaTeamBaseBodyParams = Team.omit({ id: true, createdAt: true }).partial({ +export const schemaTeamBaseBodyParams = TeamSchema.omit({ id: true, createdAt: true }).partial({ hideBranding: true, metadata: true, pendingPayment: true, @@ -28,6 +28,6 @@ const schemaOwnerId = z.object({ export const schemaTeamCreateBodyParams = schemaTeamBodyParams.merge(schemaOwnerId).strict(); -export const schemaTeamReadPublic = Team.omit({}); +export const schemaTeamReadPublic = TeamSchema.omit({}); export const schemaTeamsReadPublic = z.array(schemaTeamReadPublic); diff --git a/apps/api/v1/lib/validations/user.ts b/apps/api/v1/lib/validations/user.ts index 52b8a17a0a..efbf120757 100644 --- a/apps/api/v1/lib/validations/user.ts +++ b/apps/api/v1/lib/validations/user.ts @@ -2,8 +2,8 @@ import { z } from "zod"; import { emailSchema } from "@calcom/lib/emailSchema"; import { checkUsername } from "@calcom/lib/server/checkUsername"; -import { _UserModel as User } from "@calcom/prisma/zod"; import { iso8601 } from "@calcom/prisma/zod-utils"; +import { UserSchema } from "@calcom/prisma/zod/modelSchema/UserSchema"; import { isValidBase64Image } from "~/lib/utils/isValidBase64Image"; import { timeZone } from "~/lib/validations/shared/timeZone"; @@ -68,7 +68,7 @@ const usernameSchema = z }); // @note: These are the values that are editable via PATCH method on the user Model -export const schemaUserBaseBodyParams = User.pick({ +export const schemaUserBaseBodyParams = UserSchema.pick({ name: true, email: true, username: true, @@ -151,7 +151,7 @@ export const schemaUserCreateBodyParams = schemaUserBaseBodyParams .strict(); // @note: These are the values that are always returned when reading a user -export const schemaUserReadPublic = User.pick({ +export const schemaUserReadPublic = UserSchema.pick({ id: true, username: true, name: true, diff --git a/apps/api/v1/lib/validations/webhook.ts b/apps/api/v1/lib/validations/webhook.ts index 71219d2fa0..a142956d27 100644 --- a/apps/api/v1/lib/validations/webhook.ts +++ b/apps/api/v1/lib/validations/webhook.ts @@ -1,9 +1,9 @@ import { z } from "zod"; import { WEBHOOK_TRIGGER_EVENTS } from "@calcom/features/webhooks/lib/constants"; -import { _WebhookModel as Webhook } from "@calcom/prisma/zod"; +import { WebhookSchema } from "@calcom/prisma/zod/modelSchema/WebhookSchema"; -const schemaWebhookBaseBodyParams = Webhook.pick({ +const schemaWebhookBaseBodyParams = WebhookSchema.pick({ userId: true, eventTypeId: true, eventTriggers: true, @@ -38,7 +38,7 @@ export const schemaWebhookEditBodyParams = schemaWebhookBaseBodyParams .partial() .strict(); -export const schemaWebhookReadPublic = Webhook.pick({ +export const schemaWebhookReadPublic = WebhookSchema.pick({ id: true, userId: true, eventTypeId: true, diff --git a/apps/api/v1/pages/api/api-keys/_get.ts b/apps/api/v1/pages/api/api-keys/_get.ts index 9a27afaf0b..a60bc93476 100644 --- a/apps/api/v1/pages/api/api-keys/_get.ts +++ b/apps/api/v1/pages/api/api-keys/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import type { Ensure } from "@calcom/types/utils"; import { apiKeyPublicSchema } from "~/lib/validations/api-key"; diff --git a/apps/api/v1/pages/api/api-keys/_post.ts b/apps/api/v1/pages/api/api-keys/_post.ts index d7b27c3833..ea4dd0a23e 100644 --- a/apps/api/v1/pages/api/api-keys/_post.ts +++ b/apps/api/v1/pages/api/api-keys/_post.ts @@ -1,4 +1,3 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { v4 } from "uuid"; @@ -6,6 +5,7 @@ import { generateUniqueAPIKey } from "@calcom/features/ee/api-keys/lib/apiKeys"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { apiKeyCreateBodySchema, apiKeyPublicSchema } from "~/lib/validations/api-key"; diff --git a/apps/api/v1/pages/api/attendees/_get.ts b/apps/api/v1/pages/api/attendees/_get.ts index 4298b71f6b..dc619b0dd1 100644 --- a/apps/api/v1/pages/api/attendees/_get.ts +++ b/apps/api/v1/pages/api/attendees/_get.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaAttendeeReadPublic } from "~/lib/validations/attendee"; diff --git a/apps/api/v1/pages/api/booking-references/[id]/_patch.ts b/apps/api/v1/pages/api/booking-references/[id]/_patch.ts index 27618ac21c..fa0096fecd 100644 --- a/apps/api/v1/pages/api/booking-references/[id]/_patch.ts +++ b/apps/api/v1/pages/api/booking-references/[id]/_patch.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaBookingEditBodyParams, diff --git a/apps/api/v1/pages/api/booking-references/_get.ts b/apps/api/v1/pages/api/booking-references/_get.ts index ea16ab1036..8c4b350ea4 100644 --- a/apps/api/v1/pages/api/booking-references/_get.ts +++ b/apps/api/v1/pages/api/booking-references/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaBookingReferenceReadPublic } from "~/lib/validations/booking-reference"; diff --git a/apps/api/v1/pages/api/booking-references/_post.ts b/apps/api/v1/pages/api/booking-references/_post.ts index 8e327a1743..4c06b7827a 100644 --- a/apps/api/v1/pages/api/booking-references/_post.ts +++ b/apps/api/v1/pages/api/booking-references/_post.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaBookingCreateBodyParams, diff --git a/apps/api/v1/pages/api/bookings/[id]/_auth-middleware.ts b/apps/api/v1/pages/api/bookings/[id]/_auth-middleware.ts index e198674602..06a8f9b4e1 100644 --- a/apps/api/v1/pages/api/bookings/[id]/_auth-middleware.ts +++ b/apps/api/v1/pages/api/bookings/[id]/_auth-middleware.ts @@ -1,7 +1,7 @@ import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; -import prisma from "@calcom/prisma"; +import { prisma } from "@calcom/prisma"; import { getAccessibleUsers } from "~/lib/utils/retrieveScopedAccessibleUsers"; import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt"; @@ -34,7 +34,14 @@ async function authMiddleware(req: NextApiRequest) { where: { id: userId }, select: { email: true, - bookings: true, + bookings: { + where: { + id, + }, + select: { + id: true, + }, + }, }, }); diff --git a/apps/api/v1/pages/api/bookings/_get.ts b/apps/api/v1/pages/api/bookings/_get.ts index 96983afab3..7968a28b0b 100644 --- a/apps/api/v1/pages/api/bookings/_get.ts +++ b/apps/api/v1/pages/api/bookings/_get.ts @@ -1,9 +1,9 @@ -import type { Prisma, Booking } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma, Booking } from "@calcom/prisma/client"; import { withMiddleware } from "~/lib/helpers/withMiddleware"; import { buildWhereClause } from "~/lib/utils/bookings/get/buildWhereClause"; diff --git a/apps/api/v1/pages/api/custom-inputs/[id]/_patch.ts b/apps/api/v1/pages/api/custom-inputs/[id]/_patch.ts index e6241017d3..b14ee8a4c0 100644 --- a/apps/api/v1/pages/api/custom-inputs/[id]/_patch.ts +++ b/apps/api/v1/pages/api/custom-inputs/[id]/_patch.ts @@ -80,7 +80,13 @@ export async function patchHandler(req: NextApiRequest) { const { query } = req; const { id } = schemaQueryIdParseInt.parse(query); const data = schemaEventTypeCustomInputEditBodyParams.parse(req.body); - const result = await prisma.eventTypeCustomInput.update({ where: { id }, data }); + const result = await prisma.eventTypeCustomInput.update({ + where: { id }, + data: { + ...data, + options: data.options === null ? [] : data.options, + }, + }); return { event_type_custom_input: schemaEventTypeCustomInputPublic.parse(result) }; } diff --git a/apps/api/v1/pages/api/custom-inputs/_get.ts b/apps/api/v1/pages/api/custom-inputs/_get.ts index 657f5cf26a..0867c2f315 100644 --- a/apps/api/v1/pages/api/custom-inputs/_get.ts +++ b/apps/api/v1/pages/api/custom-inputs/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaEventTypeCustomInputPublic } from "~/lib/validations/event-type-custom-input"; diff --git a/apps/api/v1/pages/api/custom-inputs/_post.ts b/apps/api/v1/pages/api/custom-inputs/_post.ts index 5073f1eb05..203d6f8a51 100644 --- a/apps/api/v1/pages/api/custom-inputs/_post.ts +++ b/apps/api/v1/pages/api/custom-inputs/_post.ts @@ -92,7 +92,11 @@ async function postHandler(req: NextApiRequest) { } const data = await prisma.eventTypeCustomInput.create({ - data: { ...body, eventType: { connect: { id: eventTypeId } } }, + data: { + ...body, + options: body.options === null ? [] : body.options, + eventType: { connect: { id: eventTypeId } }, + }, }); return { diff --git a/apps/api/v1/pages/api/destination-calendars/[id]/_patch.ts b/apps/api/v1/pages/api/destination-calendars/[id]/_patch.ts index 08f6072002..bc213880f5 100644 --- a/apps/api/v1/pages/api/destination-calendars/[id]/_patch.ts +++ b/apps/api/v1/pages/api/destination-calendars/[id]/_patch.ts @@ -1,4 +1,3 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import type { z } from "zod"; @@ -7,6 +6,7 @@ import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; import type { PrismaClient } from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { credentialForCalendarServiceSelect } from "@calcom/prisma/selects/credential"; import { diff --git a/apps/api/v1/pages/api/event-types/[id]/_patch.ts b/apps/api/v1/pages/api/event-types/[id]/_patch.ts index 64e9853be7..3dcff2f4e8 100644 --- a/apps/api/v1/pages/api/event-types/[id]/_patch.ts +++ b/apps/api/v1/pages/api/event-types/[id]/_patch.ts @@ -1,10 +1,10 @@ -import { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import type { z } from "zod"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import { Prisma } from "@calcom/prisma/client"; import { SchedulingType } from "@calcom/prisma/enums"; import type { schemaEventTypeBaseBodyParams } from "~/lib/validations/event-type"; @@ -210,6 +210,7 @@ export async function patchHandler(req: NextApiRequest) { hosts = [], bookingLimits, durationLimits, + locations, /** FIXME: Updating event-type children from API not supported for now */ children: _, ...parsedBody @@ -217,8 +218,10 @@ export async function patchHandler(req: NextApiRequest) { const data: Prisma.EventTypeUpdateArgs["data"] = { ...parsedBody, + teamId: parsedBody.teamId === null ? undefined : parsedBody.teamId, bookingLimits: bookingLimits === null ? Prisma.DbNull : bookingLimits, durationLimits: durationLimits === null ? Prisma.DbNull : durationLimits, + locations: locations === null ? Prisma.DbNull : locations, }; if (hosts) { diff --git a/apps/api/v1/pages/api/event-types/_post.ts b/apps/api/v1/pages/api/event-types/_post.ts index 73258bef97..15e1aecc72 100644 --- a/apps/api/v1/pages/api/event-types/_post.ts +++ b/apps/api/v1/pages/api/event-types/_post.ts @@ -1,9 +1,9 @@ -import { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import { Prisma } from "@calcom/prisma/client"; import { MembershipRole } from "@calcom/prisma/enums"; import { schemaEventTypeCreateBodyParams, schemaEventTypeReadPublic } from "~/lib/validations/event-type"; @@ -265,14 +265,17 @@ import ensureOnlyMembersAsHosts from "./_utils/ensureOnlyMembersAsHosts"; * description: Authorization information is missing or invalid. */ async function postHandler(req: NextApiRequest) { - const { userId, isSystemWideAdmin, body } = req; + const { userId: ctxUserId, isSystemWideAdmin, body } = req; const { hosts = [], bookingLimits, durationLimits, + locations, /** FIXME: Adding event-type children from API not supported for now */ children: _, + // if userId is not passed, we will use the userId from the context + userId = ctxUserId, ...parsedBody } = schemaEventTypeCreateBodyParams.parse(body || {}); @@ -282,6 +285,7 @@ async function postHandler(req: NextApiRequest) { users: !!parsedBody.teamId ? undefined : { connect: { id: userId } }, bookingLimits: bookingLimits === null ? Prisma.DbNull : bookingLimits, durationLimits: durationLimits === null ? Prisma.DbNull : durationLimits, + locations: locations === null ? Prisma.DbNull : locations, }; await checkPermissions(req); @@ -291,8 +295,8 @@ async function postHandler(req: NextApiRequest) { await checkUserMembership(req); } - if (isSystemWideAdmin && parsedBody.userId && !parsedBody.teamId) { - data = { ...parsedBody, users: { connect: { id: parsedBody.userId } } }; + if (isSystemWideAdmin && userId && parsedBody.teamId === undefined) { + data = { ...parsedBody, users: { connect: { id: userId } } }; } await checkTeamEventEditPermission(req, parsedBody); diff --git a/apps/api/v1/pages/api/memberships/[id]/_get.ts b/apps/api/v1/pages/api/memberships/[id]/_get.ts index be5831f966..3314b0e11f 100644 --- a/apps/api/v1/pages/api/memberships/[id]/_get.ts +++ b/apps/api/v1/pages/api/memberships/[id]/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { membershipIdSchema, schemaMembershipPublic } from "~/lib/validations/membership"; diff --git a/apps/api/v1/pages/api/memberships/[id]/_patch.ts b/apps/api/v1/pages/api/memberships/[id]/_patch.ts index 9f57ba0355..ee7aa19d4d 100644 --- a/apps/api/v1/pages/api/memberships/[id]/_patch.ts +++ b/apps/api/v1/pages/api/memberships/[id]/_patch.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { membershipEditBodySchema, @@ -43,7 +43,13 @@ export async function patchHandler(req: NextApiRequest) { const { query } = req; const userId_teamId = membershipIdSchema.parse(query); const data = membershipEditBodySchema.parse(req.body); - const args: Prisma.MembershipUpdateArgs = { where: { userId_teamId }, data }; + const args: Prisma.MembershipUpdateArgs = { + where: { userId_teamId }, + data: { + ...data, + updatedAt: new Date(), + }, + }; await checkPermissions(req); diff --git a/apps/api/v1/pages/api/memberships/_get.ts b/apps/api/v1/pages/api/memberships/_get.ts index 3d945e8f88..1a36805a16 100644 --- a/apps/api/v1/pages/api/memberships/_get.ts +++ b/apps/api/v1/pages/api/memberships/_get.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaMembershipPublic } from "~/lib/validations/membership"; import { diff --git a/apps/api/v1/pages/api/memberships/_post.ts b/apps/api/v1/pages/api/memberships/_post.ts index 31b5be10fb..bada35b35a 100644 --- a/apps/api/v1/pages/api/memberships/_post.ts +++ b/apps/api/v1/pages/api/memberships/_post.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { membershipCreateBodySchema, schemaMembershipPublic } from "~/lib/validations/membership"; @@ -25,10 +25,7 @@ import { membershipCreateBodySchema, schemaMembershipPublic } from "~/lib/valida async function postHandler(req: NextApiRequest) { const data = membershipCreateBodySchema.parse(req.body); const args: Prisma.MembershipCreateArgs = { - data: { - createdAt: new Date(), - ...data, - }, + data, }; await checkPermissions(req); diff --git a/apps/api/v1/pages/api/schedules/_get.ts b/apps/api/v1/pages/api/schedules/_get.ts index d3a1ed7f00..a896a4c54b 100644 --- a/apps/api/v1/pages/api/schedules/_get.ts +++ b/apps/api/v1/pages/api/schedules/_get.ts @@ -1,10 +1,10 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { z } from "zod"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaSchedulePublic } from "~/lib/validations/schedule"; import { schemaQuerySingleOrMultipleUserIds } from "~/lib/validations/shared/queryUserId"; diff --git a/apps/api/v1/pages/api/schedules/_post.ts b/apps/api/v1/pages/api/schedules/_post.ts index b931637898..7abee87cca 100644 --- a/apps/api/v1/pages/api/schedules/_post.ts +++ b/apps/api/v1/pages/api/schedules/_post.ts @@ -1,10 +1,10 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { DEFAULT_SCHEDULE, getAvailabilityFromSchedule } from "@calcom/lib/availability"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaCreateScheduleBodyParams, schemaSchedulePublic } from "~/lib/validations/schedule"; diff --git a/apps/api/v1/pages/api/selected-calendars/[id]/_patch.ts b/apps/api/v1/pages/api/selected-calendars/[id]/_patch.ts index ca428bd0b1..e469e283ac 100644 --- a/apps/api/v1/pages/api/selected-calendars/[id]/_patch.ts +++ b/apps/api/v1/pages/api/selected-calendars/[id]/_patch.ts @@ -1,4 +1,3 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; @@ -6,6 +5,7 @@ import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import type { UpdateArguments } from "@calcom/lib/server/repository/selectedCalendar"; import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaSelectedCalendarPublic, diff --git a/apps/api/v1/pages/api/selected-calendars/_post.ts b/apps/api/v1/pages/api/selected-calendars/_post.ts index f71fd37623..b1e98ae22b 100644 --- a/apps/api/v1/pages/api/selected-calendars/_post.ts +++ b/apps/api/v1/pages/api/selected-calendars/_post.ts @@ -1,10 +1,10 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import { SelectedCalendarRepository } from "@calcom/lib/server/repository/selectedCalendar"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaSelectedCalendarBodyParams, diff --git a/apps/api/v1/pages/api/teams/[teamId]/_auth-middleware.ts b/apps/api/v1/pages/api/teams/[teamId]/_auth-middleware.ts index 2ca975a09d..2749c1b5a8 100644 --- a/apps/api/v1/pages/api/teams/[teamId]/_auth-middleware.ts +++ b/apps/api/v1/pages/api/teams/[teamId]/_auth-middleware.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { MembershipRole } from "@calcom/prisma/enums"; import { schemaQueryTeamId } from "~/lib/validations/shared/queryTeamId"; diff --git a/apps/api/v1/pages/api/teams/[teamId]/_get.ts b/apps/api/v1/pages/api/teams/[teamId]/_get.ts index f5e519fac0..96fd8f301d 100644 --- a/apps/api/v1/pages/api/teams/[teamId]/_get.ts +++ b/apps/api/v1/pages/api/teams/[teamId]/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaQueryTeamId } from "~/lib/validations/shared/queryTeamId"; import { schemaTeamReadPublic } from "~/lib/validations/team"; diff --git a/apps/api/v1/pages/api/teams/[teamId]/_patch.ts b/apps/api/v1/pages/api/teams/[teamId]/_patch.ts index 015266be90..4af941904e 100644 --- a/apps/api/v1/pages/api/teams/[teamId]/_patch.ts +++ b/apps/api/v1/pages/api/teams/[teamId]/_patch.ts @@ -1,4 +1,3 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { purchaseTeamOrOrgSubscription } from "@calcom/features/ee/teams/lib/payments"; @@ -6,6 +5,7 @@ import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { TRPCError } from "@trpc/server"; diff --git a/apps/api/v1/pages/api/teams/[teamId]/event-types/_get.ts b/apps/api/v1/pages/api/teams/[teamId]/event-types/_get.ts index 64117fa33e..24312019bd 100644 --- a/apps/api/v1/pages/api/teams/[teamId]/event-types/_get.ts +++ b/apps/api/v1/pages/api/teams/[teamId]/event-types/_get.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { z } from "zod"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaEventTypeReadPublic } from "~/lib/validations/event-type"; diff --git a/apps/api/v1/pages/api/teams/_get.ts b/apps/api/v1/pages/api/teams/_get.ts index 3e3a7905a4..4e22acee3e 100644 --- a/apps/api/v1/pages/api/teams/_get.ts +++ b/apps/api/v1/pages/api/teams/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaTeamsReadPublic } from "~/lib/validations/team"; diff --git a/apps/api/v1/pages/api/users/_get.ts b/apps/api/v1/pages/api/users/_get.ts index 9ba47f709c..e719e31cb9 100644 --- a/apps/api/v1/pages/api/users/_get.ts +++ b/apps/api/v1/pages/api/users/_get.ts @@ -1,8 +1,8 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { withMiddleware } from "~/lib/helpers/withMiddleware"; import { schemaQuerySingleOrMultipleUserEmails } from "~/lib/validations/shared/queryUserEmail"; diff --git a/apps/api/v1/pages/api/webhooks/[id]/_patch.ts b/apps/api/v1/pages/api/webhooks/[id]/_patch.ts index 6c93404cde..f78c8a8177 100644 --- a/apps/api/v1/pages/api/webhooks/[id]/_patch.ts +++ b/apps/api/v1/pages/api/webhooks/[id]/_patch.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString"; import { schemaWebhookEditBodyParams, schemaWebhookReadPublic } from "~/lib/validations/webhook"; diff --git a/apps/api/v1/pages/api/webhooks/_get.ts b/apps/api/v1/pages/api/webhooks/_get.ts index 9daa303a63..6dd8dc8866 100644 --- a/apps/api/v1/pages/api/webhooks/_get.ts +++ b/apps/api/v1/pages/api/webhooks/_get.ts @@ -1,9 +1,9 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaQuerySingleOrMultipleUserIds } from "~/lib/validations/shared/queryUserId"; import { schemaWebhookReadPublic } from "~/lib/validations/webhook"; diff --git a/apps/api/v1/pages/api/webhooks/_post.ts b/apps/api/v1/pages/api/webhooks/_post.ts index d364f70917..9bb6f29f3a 100644 --- a/apps/api/v1/pages/api/webhooks/_post.ts +++ b/apps/api/v1/pages/api/webhooks/_post.ts @@ -1,10 +1,10 @@ -import type { Prisma } from "@prisma/client"; import type { NextApiRequest } from "next"; import { v4 as uuidv4 } from "uuid"; import { HttpError } from "@calcom/lib/http-error"; import { defaultResponder } from "@calcom/lib/server/defaultResponder"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import { schemaWebhookCreateBodyParams, schemaWebhookReadPublic } from "~/lib/validations/webhook"; diff --git a/apps/api/v1/test/lib/bookings/_auth-middleware.integration-test.ts b/apps/api/v1/test/lib/bookings/_auth-middleware.integration-test.ts index 7b44970082..425dc04af2 100644 --- a/apps/api/v1/test/lib/bookings/_auth-middleware.integration-test.ts +++ b/apps/api/v1/test/lib/bookings/_auth-middleware.integration-test.ts @@ -1,10 +1,10 @@ -import prismock from "../../../../../../tests/libs/__mocks__/prisma"; - import type { Request, Response } from "express"; import type { NextApiRequest, NextApiResponse } from "next"; import { createMocks } from "node-mocks-http"; -import { describe, it, expect, test } from "vitest"; +import { describe, it, expect, test, beforeAll, afterAll } from "vitest"; +import { prisma } from "@calcom/prisma"; +import type { User, Team, Prisma } from "@calcom/prisma/client"; import { MembershipRole } from "@calcom/prisma/enums"; import authMiddleware from "../../../pages/api/bookings/[id]/_auth-middleware"; @@ -12,229 +12,206 @@ import authMiddleware from "../../../pages/api/bookings/[id]/_auth-middleware"; type CustomNextApiRequest = NextApiRequest & Request; type CustomNextApiResponse = NextApiResponse & Response; +const createEventTypeEventSelect = { + bookings: true, +} satisfies Prisma.EventTypeSelect; + describe("Booking ownership and access in Middleware", () => { - const adminUserId = 1; - const ownerUserId = 2; - const memberUserId = 3; - const orgOwnerUserId = 4; - const adminUserEmail = "admin@example.com"; - const ownerUserEmail = "owner@example.com"; - const memberUserEmail = "member@example.com"; - const orgOwnerUserEmail = "org-owner@example.com"; + let adminUserRef: User; + let ownerUserRef: User; + let orgOwnerUserRef: User; + let memberUserRef: User; + let orgRef: Team; + + let createEventResult1: Prisma.EventTypeGetPayload<{ select: typeof createEventTypeEventSelect }>; + let createEventResult2: Prisma.EventTypeGetPayload<{ select: typeof createEventTypeEventSelect }>; + // mock user data - function buildMockData() { + beforeAll(async () => { //Create Users - prismock.user.create({ + const createAdminUser = prisma.user.create({ data: { - id: adminUserId, - username: "admin", + username: `admin-${Date.now()}`, name: "Admin User", - email: adminUserEmail, + email: `admin+${Date.now()}@example.com`, }, }); - prismock.user.create({ + const createOwnerUser = prisma.user.create({ data: { - id: ownerUserId, - username: "owner", + username: `owner-${Date.now()}`, name: "Owner User", - email: ownerUserEmail, + email: `owner+${Date.now()}@example.com`, }, }); - prismock.user.create({ + const createOrgOwnerUser = prisma.user.create({ data: { - id: orgOwnerUserId, - username: "org-owner", + username: `org-owner-${Date.now()}`, name: "Org Owner", - email: orgOwnerUserEmail, + email: `org-owner+${Date.now()}@example.com`, }, }); - prismock.user.create({ + const createMemberUser = prisma.user.create({ data: { - id: memberUserId, - username: "member", + username: `member-${Date.now()}`, name: "Member User", - email: memberUserEmail, + email: `member+${Date.now()}@example.com`, + }, + }); + + [adminUserRef, ownerUserRef, orgOwnerUserRef, memberUserRef] = await Promise.all([ + createAdminUser, + createOwnerUser, + createOrgOwnerUser, + createMemberUser, + ]); + + //create Org & Team + orgRef = await prisma.team.create({ + data: { + name: "Org", + slug: `org-${Date.now()}`, + isOrganization: true, + children: { + create: { + name: "Team 1", + slug: `team1-${Date.now()}`, + members: { + createMany: { + data: [ + { + userId: adminUserRef.id, + role: MembershipRole.ADMIN, + accepted: true, + }, + { + userId: ownerUserRef.id, + role: MembershipRole.OWNER, + accepted: true, + }, + { + userId: memberUserRef.id, + role: MembershipRole.MEMBER, + accepted: true, + }, + ], + }, + }, + }, + }, + members: { + createMany: { + data: [ + { + userId: ownerUserRef.id, + role: MembershipRole.OWNER, + accepted: true, + }, + { + userId: memberUserRef.id, + role: MembershipRole.MEMBER, + accepted: true, + }, + { + userId: adminUserRef.id, + role: MembershipRole.MEMBER, + accepted: true, + }, + ], + }, + }, + }, + }); + + //create eventTypes + const createEventTypeEvent1 = prisma.eventType.create({ + data: { + title: "Event 1", + slug: `event-1-${Date.now()}`, + userId: ownerUserRef.id, + length: 60, bookings: { create: { - id: 2, - uid: "2", + uid: `booking-2-${Date.now()}`, title: "Booking 2", - eventTypeId: 1, + userId: memberUserRef.id, startTime: "2024-08-30T06:45:00.000Z", endTime: "2024-08-30T07:45:00.000Z", attendees: { create: { name: "Member User", - email: memberUserEmail, + email: memberUserRef.email, timeZone: "UTC", }, }, }, }, }, + select: createEventTypeEventSelect, }); - //create team - prismock.team.create({ + const createEventTypeEvent2 = prisma.eventType.create({ data: { - id: 1, - name: "Team 1", - slug: "team1", - members: { - createMany: { - data: [ - { - userId: adminUserId, - role: MembershipRole.ADMIN, - accepted: true, - }, - { - userId: ownerUserId, - role: MembershipRole.OWNER, - accepted: true, - }, - { - userId: memberUserId, - role: MembershipRole.MEMBER, - accepted: true, - }, - ], - }, - }, - }, - }); - //create Org - prismock.team.create({ - data: { - id: 2, - name: "Org", - slug: "org", - isOrganization: true, - children: { - connect: { - id: 1, - }, - }, - members: { - createMany: { - data: [ - { - userId: orgOwnerUserId, - role: MembershipRole.OWNER, - accepted: true, - }, - { - userId: memberUserId, - role: MembershipRole.MEMBER, - accepted: true, - }, - { - userId: ownerUserId, - role: MembershipRole.MEMBER, - accepted: true, - }, - { - userId: adminUserId, - role: MembershipRole.MEMBER, - accepted: true, - }, - ], - }, - }, - }, - }); - //create eventTypes - prismock.eventType.create({ - data: { - id: 1, - title: "Event 1", - slug: "event", - length: 60, - bookings: { - connect: { - id: 2, - }, - }, - }, - }); - prismock.eventType.create({ - data: { - id: 2, title: "Event 2", - slug: "event", + slug: `event-2-${Date.now()}`, length: 60, - teamId: 1, + teamId: orgRef.id, bookings: { - connect: { - id: 1, - }, - }, - }, - }); - //link eventType to teams - prismock.eventType.update({ - where: { - id: 1, - }, - data: { - owner: { - connect: { - id: ownerUserId, - }, - }, - }, - }); - prismock.eventType.update({ - where: { - id: 2, - }, - data: { - team: { - connect: { - id: 1, - }, - }, - }, - }); - //link team to org - prismock.team.update({ - where: { - id: 1, - }, - data: { - parentId: 2, - }, - }); - // Call Prisma to create booking with attendees - prismock.booking.create({ - data: { - id: 1, - uid: "1", - title: "Booking 1", - userId: 1, - startTime: "2024-08-30T06:45:00.000Z", - endTime: "2024-08-30T07:45:00.000Z", - eventTypeId: 2, - attendees: { create: { - name: "Admin User", - email: adminUserEmail, - timeZone: "UTC", + uid: `booking-1-${Date.now()}`, + title: "Booking 1", + userId: adminUserRef.id, + startTime: "2024-08-30T06:45:00.000Z", + endTime: "2024-08-30T07:45:00.000Z", + attendees: { + create: { + name: "Admin User", + email: adminUserRef.email, + timeZone: "UTC", + }, + }, }, }, }, + select: createEventTypeEventSelect, }); - } + + [createEventResult1, createEventResult2] = await Promise.all([ + createEventTypeEvent1, + createEventTypeEvent2, + ]); + }); + + afterAll(async () => { + console.log("Cleaning up org", orgRef.id); + await prisma.team.delete({ + where: { + id: orgRef.id, + }, + }); + console.log("Cleaning up users", [ + adminUserRef.id, + ownerUserRef.id, + orgOwnerUserRef.id, + memberUserRef.id, + ]); + await prisma.user.deleteMany({ + where: { + id: { + in: [adminUserRef.id, ownerUserRef.id, orgOwnerUserRef.id, memberUserRef.id], + }, + }, + }); + }); test("should not throw error for bookings where user is an attendee", async () => { + console.log(createEventResult1.bookings[0].id); const { req } = createMocks({ method: "GET", query: { - id: 2, + id: createEventResult1.bookings[0].id, }, - prisma: prismock, + prisma, }); - buildMockData(); - req.userId = memberUserId; + req.userId = memberUserRef.id; await expect(authMiddleware(req)).resolves.not.toThrow(); }); @@ -244,10 +221,9 @@ describe("Booking ownership and access in Middleware", () => { query: { id: 1, }, - prisma: prismock, + prisma, }); - buildMockData(); - req.userId = memberUserId; + req.userId = memberUserRef.id; await expect(authMiddleware(req)).rejects.toThrow(); }); @@ -256,12 +232,11 @@ describe("Booking ownership and access in Middleware", () => { const { req } = createMocks({ method: "GET", query: { - id: 2, + id: createEventResult2.bookings[0].id, }, - prisma: prismock, + prisma, }); - buildMockData(); - req.userId = ownerUserId; + req.userId = ownerUserRef.id; await expect(authMiddleware(req)).resolves.not.toThrow(); }); @@ -269,21 +244,19 @@ describe("Booking ownership and access in Middleware", () => { const { req: req1 } = createMocks({ method: "GET", query: { - id: 1, + id: createEventResult2.bookings[0].id, }, - prisma: prismock, + prisma, }); const { req: req2 } = createMocks({ method: "GET", query: { - id: 1, + id: createEventResult2.bookings[0].id, }, - prisma: prismock, + prisma, }); - buildMockData(); - - req1.userId = adminUserId; - req2.userId = ownerUserId; + req1.userId = adminUserRef.id; + req2.userId = ownerUserRef.id; await expect(authMiddleware(req1)).resolves.not.toThrow(); await expect(authMiddleware(req2)).resolves.not.toThrow(); @@ -292,13 +265,12 @@ describe("Booking ownership and access in Middleware", () => { const { req } = createMocks({ method: "GET", query: { - id: 1, + id: createEventResult2.bookings[0].id, }, - prisma: prismock, + prisma, }); - buildMockData(); - req.userId = memberUserId; + req.userId = memberUserRef.id; await expect(authMiddleware(req)).rejects.toThrow(); }); @@ -308,10 +280,9 @@ describe("Booking ownership and access in Middleware", () => { query: { id: 2, }, - prisma: prismock, + prisma, }); - buildMockData(); - req.userId = adminUserId; + req.userId = adminUserRef.id; req.isSystemWideAdmin = true; await authMiddleware(req); @@ -323,12 +294,11 @@ describe("Booking ownership and access in Middleware", () => { query: { id: 1, }, - prisma: prismock, + prisma, }); - buildMockData(); - req.userId = orgOwnerUserId; + req.userId = orgOwnerUserRef.id; req.isOrganizationOwnerOrAdmin = true; - await authMiddleware(req); + await expect(authMiddleware(req)).rejects.toThrow(); }); }); diff --git a/apps/api/v1/test/lib/selected-calendars/_post.test.ts b/apps/api/v1/test/lib/selected-calendars/_post.test.ts index 5e23d003a2..1eac8010b6 100644 --- a/apps/api/v1/test/lib/selected-calendars/_post.test.ts +++ b/apps/api/v1/test/lib/selected-calendars/_post.test.ts @@ -79,7 +79,7 @@ describe("POST /api/selected-calendars", () => { integration: "google", externalId: "ext123", userId: 444444, - id: "xxx-xxx", + id: "f47ac10b-58cc-4372-a567-0e02b2c3d479", eventTypeId: null, delegationCredentialId: null, domainWideDelegationCredentialId: null, @@ -120,7 +120,7 @@ describe("POST /api/selected-calendars", () => { req.userId = 333333; prismaMock.selectedCalendar.create.mockResolvedValue({ - id: "xxx-xxx", + id: "f47ac10b-58cc-4372-a567-0e02b2c3d479", credentialId: 1, integration: "google", externalId: "ext123", diff --git a/apps/api/v2/.gitignore b/apps/api/v2/.gitignore index 0cf21bfcd2..d325e3b2eb 100644 --- a/apps/api/v2/.gitignore +++ b/apps/api/v2/.gitignore @@ -41,4 +41,5 @@ lerna-debug.log* .env.production.local .env.* !.env.example -!.env.appStore.example \ No newline at end of file +!.env.appStore.example +/client/* \ No newline at end of file diff --git a/apps/api/v2/package.json b/apps/api/v2/package.json index 0447f8c859..119d5e7f42 100644 --- a/apps/api/v2/package.json +++ b/apps/api/v2/package.json @@ -38,7 +38,7 @@ "@axiomhq/winston": "^1.2.0", "@calcom/platform-constants": "*", "@calcom/platform-enums": "*", - "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.351", + "@calcom/platform-libraries": "npm:@calcom/platform-libraries@0.0.354", "@calcom/platform-types": "*", "@calcom/platform-utils": "*", "@calcom/prisma": "*", diff --git a/apps/api/v2/src/app.e2e-spec.ts b/apps/api/v2/src/app.e2e-spec.ts index 88c1874d9d..0e80bd592a 100644 --- a/apps/api/v2/src/app.e2e-spec.ts +++ b/apps/api/v2/src/app.e2e-spec.ts @@ -18,7 +18,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { X_CAL_CLIENT_ID, X_CAL_SECRET_KEY } from "@calcom/platform-constants"; -import { User, PlatformOAuthClient, Team, RateLimit } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team, RateLimit } from "@calcom/prisma/client"; describe("AppController", () => { describe("Rate limiting", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.e2e-spec.ts index 757a8171dc..ceea40c908 100644 --- a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.e2e-spec.ts @@ -8,12 +8,10 @@ import { SchedulesModule_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/ import { SchedulesService_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/services/schedules.service"; import { PermissionsGuard } from "@/modules/auth/guards/permissions/permissions.guard"; import { PrismaModule } from "@/modules/prisma/prisma.module"; -import { TokensModule } from "@/modules/tokens/tokens.module"; import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; @@ -22,9 +20,10 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { SUCCESS_STATUS, ERROR_STATUS } from "@calcom/platform-constants"; +import { SUCCESS_STATUS } from "@calcom/platform-constants"; import { handleNewBooking } from "@calcom/platform-libraries"; -import { ApiSuccessResponse, ApiResponse, ApiErrorResponse } from "@calcom/platform-types"; +import type { ApiSuccessResponse, ApiErrorResponse } from "@calcom/platform-types"; +import type { User } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-04-15", () => { describe("User Authenticated", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts index 5bf6614ba3..9b2c06301a 100644 --- a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts +++ b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/bookings.controller.ts @@ -63,8 +63,8 @@ import { CancelBookingInput_2024_04_15, Status_2024_04_15, } from "@calcom/platform-types"; -import { ApiResponse } from "@calcom/platform-types"; -import { PrismaClient } from "@calcom/prisma"; +import type { ApiResponse } from "@calcom/platform-types"; +import type { PrismaClient } from "@calcom/prisma"; type BookingRequest = Request & { userId?: number; diff --git a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/managed-user-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/managed-user-bookings.e2e-spec.ts index 25eba490e4..583625108b 100644 --- a/apps/api/v2/src/ee/bookings/2024-04-15/controllers/managed-user-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-04-15/controllers/managed-user-bookings.e2e-spec.ts @@ -18,7 +18,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User } from "@prisma/client"; import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -33,6 +32,7 @@ import { CreateEventTypeInput_2024_06_14, EventTypeOutput_2024_06_14, } from "@calcom/platform-types"; +import type { PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:4321"; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/booking-references.repository.ts b/apps/api/v2/src/ee/bookings/2024-08-13/booking-references.repository.ts index 57decc28ef..c48a316f5c 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/booking-references.repository.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/booking-references.repository.ts @@ -1,7 +1,8 @@ import { BookingReferencesFilterInput_2024_08_13 } from "@/ee/bookings/2024-08-13/inputs/booking-references-filter.input"; import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class BookingReferencesRepository_2024_08_13 { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/bookings.repository.ts b/apps/api/v2/src/ee/bookings/2024-08-13/bookings.repository.ts index 4b60808a4f..812f0b580c 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/bookings.repository.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/bookings.repository.ts @@ -1,7 +1,8 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class BookingsRepository_2024_08_13 { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/api-key-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/api-key-bookings.e2e-spec.ts index 4a4f32eca2..fe92a07b3b 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/api-key-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/api-key-bookings.e2e-spec.ts @@ -12,7 +12,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; @@ -37,7 +36,7 @@ import { RescheduleBookingInput_2024_08_13, CancelBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; jest.spyOn(AttendeeScheduledEmail.prototype as any, "getHtml").mockImplementation(async function () { return "Mocked Email Content"; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/booking-fields.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/booking-fields.e2e-spec.ts index 2876953b6c..22ef6d6012 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/booking-fields.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/booking-fields.e2e-spec.ts @@ -26,7 +26,7 @@ import { GetSeatedBookingOutput_2024_08_13, } from "@calcom/platform-types"; import { BookingOutput_2024_08_13 } from "@calcom/platform-types"; -import { Booking, PlatformOAuthClient, Team, User, EventType } from "@calcom/prisma/client"; +import type { Booking, PlatformOAuthClient, Team, User, EventType } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Booking fields", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/calendar-links.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/calendar-links.e2e-spec.ts index 8785a04192..d99f770cfb 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/calendar-links.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/calendar-links.e2e-spec.ts @@ -9,7 +9,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -20,7 +19,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; -import { Booking, PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, Booking, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Calendar Links", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/confirm-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/confirm-bookings.e2e-spec.ts index 43b2c5d6f8..5989898383 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/confirm-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/confirm-bookings.e2e-spec.ts @@ -9,7 +9,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -21,7 +20,7 @@ import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; import { BookingOutput_2024_08_13, GetBookingOutput_2024_08_13 } from "@calcom/platform-types"; -import { Booking, PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, Booking, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Bookings confirmation", () => { @@ -40,7 +39,6 @@ describe("Bookings Endpoints 2024-08-13", () => { let user: User; let eventTypeId: number; - const eventTypeSlug = `confirm-bookings-2024-08-13-event-type-${randomString()}`; let createdBooking1: Booking; let createdBooking2: Booking; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/confirm-emails.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/confirm-emails.e2e-spec.ts index 9aeb6a9be1..77f3933dcd 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/confirm-emails.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/confirm-emails.e2e-spec.ts @@ -1,19 +1,16 @@ import { bootstrap } from "@/app"; import { AppModule } from "@/app.module"; -import { CancelBookingOutput_2024_08_13 } from "@/ee/bookings/2024-08-13/outputs/cancel-booking.output"; import { CreateBookingOutput_2024_08_13 } from "@/ee/bookings/2024-08-13/outputs/create-booking.output"; import { RescheduleBookingOutput_2024_08_13 } from "@/ee/bookings/2024-08-13/outputs/reschedule-booking.output"; import { CreateScheduleInput_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/inputs/create-schedule.input"; import { SchedulesModule_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/schedules.module"; import { SchedulesService_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/services/schedules.service"; -import { ApiAuthGuard } from "@/modules/auth/guards/api-auth/api-auth.guard"; import { PermissionsGuard } from "@/modules/auth/guards/permissions/permissions.guard"; import { PrismaModule } from "@/modules/prisma/prisma.module"; import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -35,14 +32,13 @@ import { OrganizerRequestEmail, AttendeeDeclinedEmail, } from "@calcom/platform-libraries/emails"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, RescheduleBookingInput_2024_08_13, GetBookingOutput_2024_08_13, } from "@calcom/platform-types"; -import { CancelBookingInput_2024_08_13 } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; jest .spyOn(AttendeeScheduledEmail.prototype, "getHtml") diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts index 72b291dd99..7c76163627 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/team-emails.e2e-spec.ts @@ -11,7 +11,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { HostsRepositoryFixture } from "test/fixtures/repository/hosts.repository.fixture"; @@ -34,13 +33,13 @@ import { OrganizerRescheduledEmail, OrganizerScheduledEmail, } from "@calcom/platform-libraries/emails"; -import { +import type { BookingOutput_2024_08_13, CancelBookingInput_2024_08_13, CreateBookingInput_2024_08_13, RescheduleBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; // Mock all email sending prototypes jest diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/user-emails.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/user-emails.e2e-spec.ts index b09fe46b8f..423c9ebae0 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/user-emails.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/emails/user-emails.e2e-spec.ts @@ -13,7 +13,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -31,14 +30,14 @@ import { OrganizerCancelledEmail, AttendeeCancelledEmail, } from "@calcom/platform-libraries/emails"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, RescheduleBookingInput_2024_08_13, RecurringBookingOutput_2024_08_13, + CancelBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { CancelBookingInput_2024_08_13 } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; jest .spyOn(AttendeeScheduledEmail.prototype, "getHtml") @@ -378,7 +377,7 @@ describe("Bookings Endpoints 2024-08-13 user emails", () => { const data: BookingOutput_2024_08_13 = responseBody.data; expect(AttendeeScheduledEmail.prototype.getHtml).toHaveBeenCalled(); expect(OrganizerScheduledEmail.prototype.getHtml).toHaveBeenCalled(); - emailsEnabledSetup.createdBookingUid = responseBody.data.uid; + emailsEnabledSetup.createdBookingUid = data.uid; } else { throw new Error( "Invalid response data - expected booking but received array of possibly recurring bookings" diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/managed-user-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/managed-user-bookings.e2e-spec.ts index eef32e1823..5647960365 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/managed-user-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/managed-user-bookings.e2e-spec.ts @@ -14,7 +14,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -40,6 +39,7 @@ import { GetBookingOutput_2024_08_13, GetBookingsOutput_2024_08_13, } from "@calcom/platform-types"; +import type { PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:4321"; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/reassign-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/reassign-bookings.e2e-spec.ts index e710a5bd9c..bf066fc6d3 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/reassign-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/reassign-bookings.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { Booking, User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -25,8 +24,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; -import { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13 } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { CreateBookingInput_2024_08_13 } from "@calcom/platform-types"; +import type { Booking, User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Reassign bookings", () => { @@ -321,10 +320,6 @@ describe("Bookings Endpoints 2024-08-13", () => { return client; } - function responseDataIsBooking(data: any): data is BookingOutput_2024_08_13 { - return !Array.isArray(data) && typeof data === "object" && data && "id" in data; - } - afterAll(async () => { await oauthClientRepositoryFixture.delete(oAuthClient.id); await teamRepositoryFixture.delete(organization.id); diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/recurring-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/recurring-bookings.e2e-spec.ts index 943ebf2825..dee0fae552 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/recurring-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/recurring-bookings.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -22,12 +21,12 @@ import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; import { AttendeeCancelledEmail, OrganizerCancelledEmail } from "@calcom/platform-libraries/emails"; -import { +import type { CreateRecurringBookingInput_2024_08_13, RecurringBookingOutput_2024_08_13, + CancelBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { CancelBookingInput_2024_08_13 } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Creating recurring bookings", () => { @@ -48,7 +47,6 @@ describe("Bookings Endpoints 2024-08-13", () => { const maxRecurrenceCount = 3; let recurringEventTypeId: number; const recurringEventSlug = `recurring-bookings-2024-08-13-event-type-${randomString()}`; - let createdRecurringBooking: RecurringBookingOutput_2024_08_13[]; beforeAll(async () => { const moduleRef = await withApiAuth( diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/seated-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/seated-bookings.e2e-spec.ts index 2702895c9a..34ef629779 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/seated-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/seated-bookings.e2e-spec.ts @@ -11,7 +11,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import { DateTime } from "luxon"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; @@ -23,7 +22,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; -import { +import type { CancelBookingInput_2024_08_13, CancelSeatedBookingInput_2024_08_13, CreateSeatedBookingOutput_2024_08_13, @@ -31,9 +30,9 @@ import { GetBookingsOutput_2024_08_13, GetSeatedBookingOutput_2024_08_13, RescheduleSeatedBookingInput_2024_08_13, + CreateBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { CreateBookingInput_2024_08_13 } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { Team, User } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Seated bookings", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/team-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/team-bookings.e2e-spec.ts index e32d281058..da95412f3d 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/team-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/team-bookings.e2e-spec.ts @@ -11,7 +11,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -26,7 +25,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, RecurringBookingOutput_2024_08_13, @@ -34,7 +33,7 @@ import { GetSeatedBookingOutput_2024_08_13, RescheduleBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("Team bookings", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts index 384b52ab58..4cc21e3b59 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts @@ -14,7 +14,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { EventType, User, Workflow } from "@prisma/client"; import { advanceTo, clear } from "jest-date-mock"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; @@ -34,25 +33,22 @@ import { VERSION_2024_08_13, X_CAL_CLIENT_ID, } from "@calcom/platform-constants"; -import { AttendeeScheduledEmail, OrganizerScheduledEmail } from "@calcom/platform-libraries/emails"; import { EventManager } from "@calcom/platform-libraries/event-types"; -import { +import { FAILED_EVENT_TYPE_IDENTIFICATION_ERROR_MESSAGE } from "@calcom/platform-types"; +import type { CreateEventTypeInput_2024_06_14, - FAILED_EVENT_TYPE_IDENTIFICATION_ERROR_MESSAGE, GetBookingOutput_2024_08_13, GetBookingsOutput_2024_08_13, GetSeatedBookingOutput_2024_08_13, -} from "@calcom/platform-types"; -import { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, CreateRecurringBookingInput_2024_08_13, RecurringBookingOutput_2024_08_13, RescheduleBookingInput_2024_08_13, MarkAbsentBookingInput_2024_08_13, + CancelBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { CancelBookingInput_2024_08_13 } from "@calcom/platform-types"; -import { Booking, PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { EventType, User, Workflow, Booking, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("User bookings", () => { @@ -2917,14 +2913,12 @@ describe("Bookings Endpoints 2024-08-13", () => { }, }; - const beforeCreate = new Date(); return request(app.getHttpServer()) .post("/v2/bookings") .send(body) .set(CAL_API_VERSION_HEADER, VERSION_2024_08_13) .expect(201) .then(async (response) => { - const afterCreate = new Date(); const responseBody: CreateBookingOutput_2024_08_13 = response.body; expect(responseBody.status).toEqual(SUCCESS_STATUS); expect(responseBody.data).toBeDefined(); diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/variable-length-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/variable-length-bookings.e2e-spec.ts index 3a41065a93..5a54bc0c52 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/variable-length-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/variable-length-bookings.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { EventType, User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -21,13 +20,13 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, CreateRecurringBookingInput_2024_08_13, RecurringBookingOutput_2024_08_13, } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { PlatformOAuthClient, Team, EventType, User } from "@calcom/prisma/client"; describe("Bookings Endpoints 2024-08-13", () => { describe("User bookings", () => { diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts b/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts index c8d7c005cc..e28c4ec32f 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/services/bookings.service.ts @@ -62,8 +62,8 @@ import { RescheduleBookingInput, CancelBookingInput, } from "@calcom/platform-types"; -import { PrismaClient } from "@calcom/prisma"; -import { EventType, User, Team } from "@calcom/prisma/client"; +import type { PrismaClient } from "@calcom/prisma"; +import type { EventType, User, Team } from "@calcom/prisma/client"; type CreatedBooking = { hosts: { id: number }[]; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts b/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts index bc293a68bc..bbafd10e8f 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/services/input.service.ts @@ -31,7 +31,7 @@ import { z } from "zod"; import { CreationSource } from "@calcom/platform-libraries"; import { EventTypeMetaDataSchema } from "@calcom/platform-libraries/event-types"; -import { +import type { CancelBookingInput, CancelBookingInput_2024_08_13, CancelSeatedBookingInput_2024_08_13, @@ -44,8 +44,8 @@ import { RescheduleBookingInput_2024_08_13, RescheduleSeatedBookingInput_2024_08_13, } from "@calcom/platform-types"; -import { BookingInputLocation_2024_08_13 } from "@calcom/platform-types/bookings/2024-08-13/inputs/location.input"; -import { EventType } from "@calcom/prisma/client"; +import type { BookingInputLocation_2024_08_13 } from "@calcom/platform-types/bookings/2024-08-13/inputs/location.input"; +import type { EventType } from "@calcom/prisma/client"; type BookingRequest = NextApiRequest & { userId: number | undefined; diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts b/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts index 84512c55ca..0fccb9af77 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts @@ -13,16 +13,19 @@ import { z } from "zod"; import { bookingMetadataSchema } from "@calcom/platform-libraries"; import { - BookingOutput_2024_08_13, - CreateRecurringSeatedBookingOutput_2024_08_13, - CreateSeatedBookingOutput_2024_08_13, GetRecurringSeatedBookingOutput_2024_08_13, - GetSeatedBookingOutput_2024_08_13, - ReassignBookingOutput_2024_08_13, RecurringBookingOutput_2024_08_13, SeatedAttendee, + BookingOutput_2024_08_13, + GetSeatedBookingOutput_2024_08_13, } from "@calcom/platform-types"; -import { Booking, BookingSeat } from "@calcom/prisma/client"; +import type { + CreateRecurringSeatedBookingOutput_2024_08_13, + CreateSeatedBookingOutput_2024_08_13, + ReassignBookingOutput_2024_08_13, +} from "@calcom/platform-types"; +import type { Booking, BookingSeat } from "@calcom/prisma/client"; +import { BookingStatus } from "@calcom/prisma/enums"; export const bookingResponsesSchema = z .object({ @@ -225,8 +228,8 @@ export class OutputBookingsService_2024_08_13 { hosts: [this.getHost(databaseBooking.user)], status: databaseBooking.status.toLowerCase(), cancellationReason: - databaseBooking.status === "CANCELLED" ? databaseBooking.cancellationReason : undefined, - cancelledByEmail: databaseBooking.status === "CANCELLED" ? databaseBooking.cancelledBy : undefined, + databaseBooking.status === BookingStatus.CANCELLED ? databaseBooking.cancellationReason : undefined, + cancelledByEmail: databaseBooking.status === BookingStatus.CANCELLED ? databaseBooking.cancelledBy : undefined, reschedulingReason: bookingResponses?.rescheduledReason, rescheduledFromUid: databaseBooking.fromReschedule || undefined, start: databaseBooking.startTime, @@ -298,7 +301,7 @@ export class OutputBookingsService_2024_08_13 { hosts: [this.getHost(databaseBooking.user)], status: databaseBooking.status.toLowerCase(), cancellationReason: - databaseBooking.status === "CANCELLED" ? databaseBooking.cancellationReason : undefined, + databaseBooking.status === BookingStatus.CANCELLED ? databaseBooking.cancellationReason : undefined, rescheduledFromUid: databaseBooking.fromReschedule || undefined, start: databaseBooking.startTime, end: databaseBooking.endTime, @@ -415,7 +418,7 @@ export class OutputBookingsService_2024_08_13 { hosts: [this.getHost(databaseBooking.user)], status: databaseBooking.status.toLowerCase(), cancellationReason: - databaseBooking.status === "CANCELLED" ? databaseBooking.cancellationReason : undefined, + databaseBooking.status === BookingStatus.CANCELLED ? databaseBooking.cancellationReason : undefined, rescheduledFromUid: databaseBooking.fromReschedule || undefined, start: databaseBooking.startTime, end: databaseBooking.endTime, diff --git a/apps/api/v2/src/ee/bookings/shared/platform-bookings.service.ts b/apps/api/v2/src/ee/bookings/shared/platform-bookings.service.ts index 756100dcbb..4ca1c78c2a 100644 --- a/apps/api/v2/src/ee/bookings/shared/platform-bookings.service.ts +++ b/apps/api/v2/src/ee/bookings/shared/platform-bookings.service.ts @@ -4,7 +4,7 @@ import { OAuthClientUsersService } from "@/modules/oauth-clients/services/oauth- import { UsersRepository } from "@/modules/users/users.repository"; import { Injectable } from "@nestjs/common"; -import { PlatformOAuthClient } from "@calcom/prisma/client"; +import type { PlatformOAuthClient } from "@calcom/prisma/client"; @Injectable() export class PlatformBookingsService { diff --git a/apps/api/v2/src/ee/calendars/calendars.repository.ts b/apps/api/v2/src/ee/calendars/calendars.repository.ts index 77b6eff924..ecf8a9e765 100644 --- a/apps/api/v2/src/ee/calendars/calendars.repository.ts +++ b/apps/api/v2/src/ee/calendars/calendars.repository.ts @@ -1,7 +1,7 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; +import type { Prisma } from "@calcom/prisma/client"; const credentialForCalendarRepositorySelect = { id: true, diff --git a/apps/api/v2/src/ee/calendars/controllers/calendars.controller.e2e-spec.ts b/apps/api/v2/src/ee/calendars/controllers/calendars.controller.e2e-spec.ts index ec77b4f98d..b6538ce71e 100644 --- a/apps/api/v2/src/ee/calendars/controllers/calendars.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/calendars/controllers/calendars.controller.e2e-spec.ts @@ -12,7 +12,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User, Credential } from "@prisma/client"; import * as request from "supertest"; import { CredentialsRepositoryFixture } from "test/fixtures/repository/credentials.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -33,6 +32,7 @@ import { import { OFFICE_365_CALENDAR_ID, OFFICE_365_CALENDAR_TYPE } from "@calcom/platform-constants"; import { ICS_CALENDAR, ICS_CALENDAR_TYPE } from "@calcom/platform-constants/apps"; import { IcsFeedCalendarService } from "@calcom/platform-libraries/app-store"; +import type { PlatformOAuthClient, Team, User, Credential } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:5555"; diff --git a/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts b/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts index f2d0441ac8..bb2e35ba83 100644 --- a/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts +++ b/apps/api/v2/src/ee/calendars/controllers/calendars.controller.ts @@ -39,7 +39,6 @@ import { ParseBoolPipe, } from "@nestjs/common"; import { ApiHeader, ApiOperation, ApiParam, ApiQuery, ApiTags as DocsTags } from "@nestjs/swagger"; -import { User } from "@prisma/client"; import { plainToClass } from "class-transformer"; import { Request } from "express"; import { z } from "zod"; @@ -53,7 +52,12 @@ import { APPLE_CALENDAR, CREDENTIAL_CALENDARS, } from "@calcom/platform-constants"; -import { ApiResponse, CalendarBusyTimesInput, CreateCalendarCredentialsInput } from "@calcom/platform-types"; +import type { + ApiResponse, + CalendarBusyTimesInput, + CreateCalendarCredentialsInput, +} from "@calcom/platform-types"; +import type { User } from "@calcom/prisma/client"; export interface CalendarState { accessToken: string; diff --git a/apps/api/v2/src/ee/calendars/services/apple-calendar.service.ts b/apps/api/v2/src/ee/calendars/services/apple-calendar.service.ts index 7a2188cd70..001da84c4f 100644 --- a/apps/api/v2/src/ee/calendars/services/apple-calendar.service.ts +++ b/apps/api/v2/src/ee/calendars/services/apple-calendar.service.ts @@ -7,7 +7,7 @@ import { Injectable } from "@nestjs/common"; import { SUCCESS_STATUS, APPLE_CALENDAR_TYPE, APPLE_CALENDAR_ID } from "@calcom/platform-constants"; import { symmetricEncrypt, symmetricDecrypt } from "@calcom/platform-libraries"; import { CalendarService } from "@calcom/platform-libraries/app-store"; -import { Credential } from "@calcom/prisma/client"; +import type { Credential } from "@calcom/prisma/client"; @Injectable() export class AppleCalendarService implements CredentialSyncCalendarApp { diff --git a/apps/api/v2/src/ee/calendars/services/calendars.service.ts b/apps/api/v2/src/ee/calendars/services/calendars.service.ts index 676c05d419..ec4f62dbde 100644 --- a/apps/api/v2/src/ee/calendars/services/calendars.service.ts +++ b/apps/api/v2/src/ee/calendars/services/calendars.service.ts @@ -11,22 +11,21 @@ import { UsersRepository } from "@/modules/users/users.repository"; import { Injectable, InternalServerErrorException, - UnauthorizedException, NotFoundException, + UnauthorizedException, } from "@nestjs/common"; -import { User } from "@prisma/client"; -import type { Prisma } from "@prisma/client"; import { DateTime } from "luxon"; import { z } from "zod"; import { APPS_TYPE_ID_MAPPING } from "@calcom/platform-constants"; import { - getConnectedDestinationCalendarsAndEnsureDefaultsInDb, getBusyCalendarTimes, + getConnectedDestinationCalendarsAndEnsureDefaultsInDb, type EventBusyDate, } from "@calcom/platform-libraries"; -import { Calendar } from "@calcom/platform-types"; -import { PrismaClient } from "@calcom/prisma"; +import type { Calendar } from "@calcom/platform-types"; +import type { PrismaClient } from "@calcom/prisma"; +import type { Prisma, User } from "@calcom/prisma/client"; @Injectable() export class CalendarsService { diff --git a/apps/api/v2/src/ee/calendars/services/gcal.service.ts b/apps/api/v2/src/ee/calendars/services/gcal.service.ts index 38e1f11d6d..2f8466a6d6 100644 --- a/apps/api/v2/src/ee/calendars/services/gcal.service.ts +++ b/apps/api/v2/src/ee/calendars/services/gcal.service.ts @@ -10,12 +10,12 @@ import { Logger, NotFoundException } from "@nestjs/common"; import { BadRequestException, UnauthorizedException } from "@nestjs/common"; import { Injectable } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; -import { Prisma } from "@prisma/client"; import { Request } from "express"; import { OAuth2Client } from "googleapis-common"; import { z } from "zod"; import { SUCCESS_STATUS, GOOGLE_CALENDAR_TYPE } from "@calcom/platform-constants"; +import { Prisma } from "@calcom/prisma/client"; const CALENDAR_SCOPES = [ "https://www.googleapis.com/auth/calendar.readonly", diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.e2e-spec.ts b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.e2e-spec.ts index 4b03003880..2368391678 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.e2e-spec.ts @@ -16,7 +16,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { EventType, PlatformOAuthClient, Team, User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -37,7 +36,8 @@ import { eventTypeLocations, EventTypesPublic, } from "@calcom/platform-libraries/event-types"; -import { ApiSuccessResponse } from "@calcom/platform-types"; +import type { ApiSuccessResponse } from "@calcom/platform-types"; +import type { EventType, PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; describe("Event types Endpoints", () => { describe("Not authenticated", () => { @@ -290,9 +290,9 @@ describe("Event types Endpoints", () => { expect(responseBookingFields).toBeDefined(); // note(Lauris): response bookingFields are already existing default bookingFields + the new one const responseBookingField = responseBookingFields.find((field) => field.name === bookingFieldName); - const fields = responseBookingField - //@ts-ignore - delete fields.labelAsSafeHtml + const fields = responseBookingField; + // @ts-expect-error fields is possibly undefined + delete fields.labelAsSafeHtml; expect(fields).toEqual(bookingFields[0]); eventType.bookingFields = responseBookingFields; }); diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.ts b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.ts index b1f11a62a6..a1985d5e34 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.ts @@ -47,7 +47,7 @@ import { X_CAL_CLIENT_ID, } from "@calcom/platform-constants"; import { getPublicEvent, getEventTypesByViewer } from "@calcom/platform-libraries/event-types"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Controller({ path: "/v2/event-types", diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts index ac7be4bbb4..7a08114549 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_04_15/services/event-types.service.ts @@ -19,7 +19,7 @@ import { EventTypesPublic, getEventTypesPublic, } from "@calcom/platform-libraries/event-types"; -import { EventType } from "@calcom/prisma/client"; +import type { EventType } from "@calcom/prisma/client"; @Injectable() export class EventTypesService_2024_04_15 { diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts index 15a12c531b..b639a1489a 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User, Schedule, EventType } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -32,7 +31,7 @@ import { FrequencyInput, } from "@calcom/platform-enums"; import { SchedulingType } from "@calcom/platform-libraries"; -import { +import type { ApiSuccessResponse, CreateEventTypeInput_2024_06_14, EventTypeOutput_2024_06_14, @@ -41,6 +40,7 @@ import { NotesDefaultFieldInput_2024_06_14, UpdateEventTypeInput_2024_06_14, } from "@calcom/platform-types"; +import type { PlatformOAuthClient, Team, User, Schedule, EventType } from "@calcom/prisma/client"; const orderBySlug = (a: { slug: string }, b: { slug: string }) => { if (a.slug < b.slug) return -1; diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts index 1df0950f5e..b9c7eea8bd 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/event-types.repository.ts @@ -2,7 +2,8 @@ import { InputEventTransformed_2024_06_14 } from "@/ee/event-types/event-types_2 import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class EventTypesRepository_2024_06_14 { diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts index 5e6cfde075..11c060feb8 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/event-types.service.ts @@ -18,8 +18,8 @@ import { getEventTypesPublic, EventTypesPublic, } from "@calcom/platform-libraries/event-types"; -import { GetEventTypesQuery_2024_06_14 } from "@calcom/platform-types"; -import { EventType } from "@calcom/prisma/client"; +import type { GetEventTypesQuery_2024_06_14 } from "@calcom/platform-types"; +import type { EventType } from "@calcom/prisma/client"; @Injectable() export class EventTypesService_2024_06_14 { diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts index 1326e382c3..b0db6cc1ec 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts @@ -15,7 +15,6 @@ import { BookingFieldSchema, } from "@/ee/event-types/event-types_2024_06_14/transformers"; import { Injectable } from "@nestjs/common"; -import type { EventType, User, Schedule, DestinationCalendar, CalVideoSettings } from "@prisma/client"; import { userMetadata, @@ -24,7 +23,7 @@ import { getBookingFieldsWithSystemFields, } from "@calcom/platform-libraries"; import { EventTypeMetaDataSchema, parseEventTypeColor } from "@calcom/platform-libraries/event-types"; -import { +import type { TransformFutureBookingsLimitSchema_2024_06_14, BookerLayoutsTransformedSchema, NoticeThresholdTransformedSchema, @@ -33,6 +32,7 @@ import { OutputUnknownBookingField_2024_06_14, OutputBookingField_2024_06_14, } from "@calcom/platform-types"; +import type { EventType, User, Schedule, DestinationCalendar, CalVideoSettings } from "@calcom/prisma/client"; type EventTypeRelations = { users: User[]; diff --git a/apps/api/v2/src/ee/gcal/gcal.controller.e2e-spec.ts b/apps/api/v2/src/ee/gcal/gcal.controller.e2e-spec.ts index 62d60286da..23d512148b 100644 --- a/apps/api/v2/src/ee/gcal/gcal.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/gcal/gcal.controller.e2e-spec.ts @@ -9,7 +9,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User, Credential } from "@prisma/client"; import * as request from "supertest"; import { CredentialsRepositoryFixture } from "test/fixtures/repository/credentials.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -18,6 +17,8 @@ import { TokensRepositoryFixture } from "test/fixtures/repository/tokens.reposit import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { CalendarsServiceMock } from "test/mocks/calendars-service-mock"; +import type { PlatformOAuthClient, Team, User, Credential } from "@calcom/prisma/client"; + const CLIENT_REDIRECT_URI = "http://localhost:5555"; describe("Platform Gcal Endpoints", () => { diff --git a/apps/api/v2/src/ee/me/me.controller.e2e-spec.ts b/apps/api/v2/src/ee/me/me.controller.e2e-spec.ts index fb2df5f26f..f98de565a1 100644 --- a/apps/api/v2/src/ee/me/me.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/me/me.controller.e2e-spec.ts @@ -9,7 +9,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User, Team } from "@prisma/client"; import * as request from "supertest"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; @@ -19,8 +18,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { UserResponse } from "@calcom/platform-types"; -import { ApiSuccessResponse } from "@calcom/platform-types"; +import type { UserResponse, ApiSuccessResponse } from "@calcom/platform-types"; +import type { User, Team } from "@calcom/prisma/client"; describe("Me Endpoints", () => { describe("User Authentication", () => { diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_04_15/controllers/schedules.controller.e2e-spec.ts b/apps/api/v2/src/ee/schedules/schedules_2024_04_15/controllers/schedules.controller.e2e-spec.ts index d858a497d2..66ca81c2e8 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_04_15/controllers/schedules.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_04_15/controllers/schedules.controller.e2e-spec.ts @@ -12,7 +12,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { SchedulesRepositoryFixture } from "test/fixtures/repository/schedules.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; @@ -20,7 +19,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_04_15 } from "@calcom/platform-constants"; -import { UpdateScheduleInput_2024_04_15 } from "@calcom/platform-types"; +import type { UpdateScheduleInput_2024_04_15 } from "@calcom/platform-types"; +import type { User } from "@calcom/prisma/client"; describe("Schedules Endpoints", () => { describe("User Authentication", () => { diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_04_15/schedules.repository.ts b/apps/api/v2/src/ee/schedules/schedules_2024_04_15/schedules.repository.ts index 2cd8356a2b..c35da0721b 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_04_15/schedules.repository.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_04_15/schedules.repository.ts @@ -3,7 +3,8 @@ import { CreateScheduleInput_2024_04_15 } from "@/ee/schedules/schedules_2024_04 import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; +import type { Prisma } from "@calcom/prisma/client"; + @Injectable() export class SchedulesRepository_2024_04_15 { diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_04_15/services/schedules.service.ts b/apps/api/v2/src/ee/schedules/schedules_2024_04_15/services/schedules.service.ts index a250ae0b4d..955af10901 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_04_15/services/schedules.service.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_04_15/services/schedules.service.ts @@ -4,12 +4,12 @@ import { SchedulesRepository_2024_04_15 } from "@/ee/schedules/schedules_2024_04 import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { UserWithProfile, UsersRepository } from "@/modules/users/users.repository"; import { BadRequestException, ForbiddenException, Injectable, NotFoundException } from "@nestjs/common"; -import { Schedule } from "@prisma/client"; import { updateSchedule } from "@calcom/platform-libraries/schedules"; import { ScheduleRepository } from "@calcom/platform-libraries/schedules"; -import { UpdateScheduleInput_2024_04_15 } from "@calcom/platform-types"; -import { PrismaClient } from "@calcom/prisma"; +import type { UpdateScheduleInput_2024_04_15 } from "@calcom/platform-types"; +import type { PrismaClient } from "@calcom/prisma"; +import type { Schedule } from "@calcom/prisma/client"; @Injectable() export class SchedulesService_2024_04_15 { diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/controllers/schedules.controller.e2e-spec.ts b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/controllers/schedules.controller.e2e-spec.ts index b0bec9d735..a186e66fcc 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/controllers/schedules.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/controllers/schedules.controller.e2e-spec.ts @@ -8,22 +8,22 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { SchedulesRepositoryFixture } from "test/fixtures/repository/schedules.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_06_11 } from "@calcom/platform-constants"; -import { +import type { CreateScheduleInput_2024_06_11, CreateScheduleOutput_2024_06_11, GetScheduleOutput_2024_06_11, GetSchedulesOutput_2024_06_11, ScheduleOutput_2024_06_11, UpdateScheduleOutput_2024_06_11, + UpdateScheduleInput_2024_06_11, } from "@calcom/platform-types"; -import { UpdateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import type { User } from "@calcom/prisma/client"; describe("Schedules Endpoints", () => { describe("User Authentication", () => { diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/schedules.repository.ts b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/schedules.repository.ts index 763be8695a..3a54a2d9c6 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/schedules.repository.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/schedules.repository.ts @@ -1,9 +1,9 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import { Prisma } from "@prisma/client"; import type { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import { Prisma } from "@calcom/prisma/client"; type InputScheduleAvailabilityTransformed = { days: number[]; diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/output-schedules.service.ts b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/output-schedules.service.ts index 18f882f93b..351b356173 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/output-schedules.service.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/output-schedules.service.ts @@ -1,8 +1,8 @@ import { UsersRepository } from "@/modules/users/users.repository"; import { Injectable } from "@nestjs/common"; -import type { Availability, Schedule } from "@prisma/client"; -import { WeekDay } from "@calcom/platform-types"; +import type { WeekDay } from "@calcom/platform-types"; +import type { Availability, Schedule } from "@calcom/prisma/client"; @Injectable() export class OutputSchedulesService_2024_06_11 { diff --git a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/schedules.service.ts b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/schedules.service.ts index d68400a572..6f94cdc95a 100644 --- a/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/schedules.service.ts +++ b/apps/api/v2/src/ee/schedules/schedules_2024_06_11/services/schedules.service.ts @@ -3,10 +3,13 @@ import { InputSchedulesService_2024_06_11 } from "@/ee/schedules/schedules_2024_ import { OutputSchedulesService_2024_06_11 } from "@/ee/schedules/schedules_2024_06_11/services/output-schedules.service"; import { UsersRepository } from "@/modules/users/users.repository"; import { BadRequestException, ForbiddenException, Injectable, NotFoundException } from "@nestjs/common"; -import { Schedule } from "@prisma/client"; -import { CreateScheduleInput_2024_06_11, ScheduleOutput_2024_06_11 } from "@calcom/platform-types"; -import { UpdateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import type { + CreateScheduleInput_2024_06_11, + ScheduleOutput_2024_06_11, + UpdateScheduleInput_2024_06_11, +} from "@calcom/platform-types"; +import type { Schedule } from "@calcom/prisma/client"; @Injectable() export class SchedulesService_2024_06_11 { diff --git a/apps/api/v2/src/filters/prisma-exception.filter.ts b/apps/api/v2/src/filters/prisma-exception.filter.ts index a92b04171d..9eedf76f5c 100644 --- a/apps/api/v2/src/filters/prisma-exception.filter.ts +++ b/apps/api/v2/src/filters/prisma-exception.filter.ts @@ -2,7 +2,6 @@ import { extractUserContext } from "@/lib/extract-user-context"; import { filterReqHeaders } from "@/lib/filterReqHeaders"; import type { ArgumentsHost, ExceptionFilter } from "@nestjs/common"; import { Catch, HttpStatus, Logger } from "@nestjs/common"; -import { Prisma } from "@prisma/client"; import { Request } from "express"; import { @@ -12,7 +11,8 @@ import { INTERNAL_SERVER_ERROR, NOT_FOUND, } from "@calcom/platform-constants"; -import { Response } from "@calcom/platform-types"; +import type { Response } from "@calcom/platform-types"; +import { Prisma } from "@calcom/prisma/client"; type PrismaError = | Prisma.PrismaClientInitializationError diff --git a/apps/api/v2/src/lib/extract-user-context.ts b/apps/api/v2/src/lib/extract-user-context.ts index 843ceaa00b..fbdd2e855b 100644 --- a/apps/api/v2/src/lib/extract-user-context.ts +++ b/apps/api/v2/src/lib/extract-user-context.ts @@ -1,6 +1,6 @@ import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; import { ApiAuthGuardUser } from "../modules/auth/strategies/api-auth/api-auth.strategy"; diff --git a/apps/api/v2/src/lib/repositories/prisma-attribute.repository.ts b/apps/api/v2/src/lib/repositories/prisma-attribute.repository.ts index c479e8b947..55e0110bb5 100644 --- a/apps/api/v2/src/lib/repositories/prisma-attribute.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-attribute.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaAttributeRepository as PrismaAttributeRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaAttributeRepository extends PrismaAttributeRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-booking.repository.ts b/apps/api/v2/src/lib/repositories/prisma-booking.repository.ts index a8b861327c..b794c9e4c9 100644 --- a/apps/api/v2/src/lib/repositories/prisma-booking.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-booking.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaBookingRepository as PrismaBookingRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaBookingRepository extends PrismaBookingRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-event-type.repository.ts b/apps/api/v2/src/lib/repositories/prisma-event-type.repository.ts index edb45cb56a..01665e2142 100644 --- a/apps/api/v2/src/lib/repositories/prisma-event-type.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-event-type.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaEventTypeRepository as PrismaEventTypeRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaEventTypeRepository extends PrismaEventTypeRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-features.repository.ts b/apps/api/v2/src/lib/repositories/prisma-features.repository.ts index 9039675e10..a59318dc18 100644 --- a/apps/api/v2/src/lib/repositories/prisma-features.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-features.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaFeaturesRepository as PrismaFeaturesRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaFeaturesRepository extends PrismaFeaturesRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-host.repository.ts b/apps/api/v2/src/lib/repositories/prisma-host.repository.ts index 30d4d364a2..cf23bad2ed 100644 --- a/apps/api/v2/src/lib/repositories/prisma-host.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-host.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaHostRepository as PrismaHostRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaHostRepository extends PrismaHostRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-membership.repository.ts b/apps/api/v2/src/lib/repositories/prisma-membership.repository.ts index a535ba2c79..9e1851484e 100644 --- a/apps/api/v2/src/lib/repositories/prisma-membership.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-membership.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaMembershipRepository as PrismaMembershipRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaMembershipRepository extends PrismaMembershipRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-ooo.repository.ts b/apps/api/v2/src/lib/repositories/prisma-ooo.repository.ts index 92028a8c12..0b2c8bf9fe 100644 --- a/apps/api/v2/src/lib/repositories/prisma-ooo.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-ooo.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaOOORepository as PrismaOOORepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaOOORepository extends PrismaOOORepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-routing-form-response.repository.ts b/apps/api/v2/src/lib/repositories/prisma-routing-form-response.repository.ts index ce4df19064..7ff59634ca 100644 --- a/apps/api/v2/src/lib/repositories/prisma-routing-form-response.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-routing-form-response.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaRoutingFormResponseRepository as PrismaRoutingFormResponseRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaRoutingFormResponseRepository extends PrismaRoutingFormResponseRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-schedule.repository.ts b/apps/api/v2/src/lib/repositories/prisma-schedule.repository.ts index b9880340a5..dbb7a5b6bd 100644 --- a/apps/api/v2/src/lib/repositories/prisma-schedule.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-schedule.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaScheduleRepository as PrismaScheduleRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaScheduleRepository extends PrismaScheduleRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-selected-slot.repository.ts b/apps/api/v2/src/lib/repositories/prisma-selected-slot.repository.ts index 09a77f5b6a..c92185d2bb 100644 --- a/apps/api/v2/src/lib/repositories/prisma-selected-slot.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-selected-slot.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaSelectedSlotRepository as PrismaSelectedSlotRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaSelectedSlotRepository extends PrismaSelectedSlotRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-team.repository.ts b/apps/api/v2/src/lib/repositories/prisma-team.repository.ts index 8538ea36f7..e2d31d4571 100644 --- a/apps/api/v2/src/lib/repositories/prisma-team.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-team.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaTeamRepository as PrismaTeamRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaTeamRepository extends PrismaTeamRepositoryLib { diff --git a/apps/api/v2/src/lib/repositories/prisma-user.repository.ts b/apps/api/v2/src/lib/repositories/prisma-user.repository.ts index 8b7375385a..55762c5805 100644 --- a/apps/api/v2/src/lib/repositories/prisma-user.repository.ts +++ b/apps/api/v2/src/lib/repositories/prisma-user.repository.ts @@ -2,7 +2,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { PrismaUserRepository as PrismaUserRepositoryLib } from "@calcom/platform-libraries/repositories"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class PrismaUserRepository extends PrismaUserRepositoryLib { diff --git a/apps/api/v2/src/modules/apps/apps.repository.ts b/apps/api/v2/src/modules/apps/apps.repository.ts index 6cb737d1b5..b2258106e7 100644 --- a/apps/api/v2/src/modules/apps/apps.repository.ts +++ b/apps/api/v2/src/modules/apps/apps.repository.ts @@ -1,7 +1,8 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import { App, Prisma } from "@prisma/client"; + +import type { App, Prisma } from "@calcom/prisma/client"; @Injectable() export class AppsRepository { diff --git a/apps/api/v2/src/modules/atoms/services/conferencing-atom.service.ts b/apps/api/v2/src/modules/atoms/services/conferencing-atom.service.ts index 2f4845fe76..1a79e351db 100644 --- a/apps/api/v2/src/modules/atoms/services/conferencing-atom.service.ts +++ b/apps/api/v2/src/modules/atoms/services/conferencing-atom.service.ts @@ -4,7 +4,7 @@ import { Logger } from "@nestjs/common"; import { Injectable } from "@nestjs/common"; import { getConnectedApps, ConnectedApps } from "@calcom/platform-libraries/app-store"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class ConferencingAtomsService { diff --git a/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts b/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts index 36d3c9d561..4f394fd8a7 100644 --- a/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts +++ b/apps/api/v2/src/modules/atoms/services/event-types-atom.service.ts @@ -36,7 +36,7 @@ import { TUpdateEventTypeInputSchema, EventTypeMetaDataSchema, } from "@calcom/platform-libraries/event-types"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; type EnabledAppType = App & { credential: CredentialDataWithTeamName; @@ -286,8 +286,10 @@ export class EventTypesAtomService { .filter(({ ...app }) => app.slug === slug) .map( async ({ + // eslint-disable-next-line @typescript-eslint/no-unused-vars credentials: _, credential, + // eslint-disable-next-line @typescript-eslint/no-unused-vars key: _2 /* don't leak to frontend */, ...app }: EnabledAppType) => { diff --git a/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts b/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts index 0e02bcb9cd..ff7184961a 100644 --- a/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts +++ b/apps/api/v2/src/modules/atoms/services/schedules-atom.service.ts @@ -7,7 +7,7 @@ import { Injectable } from "@nestjs/common"; import { ScheduleRepository, UpdateScheduleResponse } from "@calcom/platform-libraries/schedules"; import { updateSchedule } from "@calcom/platform-libraries/schedules"; import { UpdateAtomScheduleDto } from "@calcom/platform-types"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; @Injectable() export class SchedulesAtomsService { diff --git a/apps/api/v2/src/modules/auth/decorators/get-membership/get-membership.decorator.ts b/apps/api/v2/src/modules/auth/decorators/get-membership/get-membership.decorator.ts index 6dc57ed261..20ea5a9677 100644 --- a/apps/api/v2/src/modules/auth/decorators/get-membership/get-membership.decorator.ts +++ b/apps/api/v2/src/modules/auth/decorators/get-membership/get-membership.decorator.ts @@ -1,7 +1,7 @@ import { ExecutionContext } from "@nestjs/common"; import { createParamDecorator } from "@nestjs/common"; -import { Membership } from "@calcom/prisma/client"; +import type { Membership } from "@calcom/prisma/client"; export type GetMembershipReturnType = Membership; diff --git a/apps/api/v2/src/modules/auth/decorators/get-org/get-org.decorator.ts b/apps/api/v2/src/modules/auth/decorators/get-org/get-org.decorator.ts index 50d3bb543d..12448a0c3a 100644 --- a/apps/api/v2/src/modules/auth/decorators/get-org/get-org.decorator.ts +++ b/apps/api/v2/src/modules/auth/decorators/get-org/get-org.decorator.ts @@ -1,7 +1,7 @@ import { ExecutionContext } from "@nestjs/common"; import { createParamDecorator } from "@nestjs/common"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; export type GetOrgReturnType = Team; diff --git a/apps/api/v2/src/modules/auth/decorators/get-team/get-team.decorator.ts b/apps/api/v2/src/modules/auth/decorators/get-team/get-team.decorator.ts index 80560f8aa7..c828b46ca3 100644 --- a/apps/api/v2/src/modules/auth/decorators/get-team/get-team.decorator.ts +++ b/apps/api/v2/src/modules/auth/decorators/get-team/get-team.decorator.ts @@ -1,7 +1,7 @@ import { ExecutionContext } from "@nestjs/common"; import { createParamDecorator } from "@nestjs/common"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; export type GetTeamReturnType = Team; diff --git a/apps/api/v2/src/modules/auth/guards/memberships/is-membership-in-org.guard.ts b/apps/api/v2/src/modules/auth/guards/memberships/is-membership-in-org.guard.ts index f90e2a01e2..dbb8274850 100644 --- a/apps/api/v2/src/modules/auth/guards/memberships/is-membership-in-org.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/memberships/is-membership-in-org.guard.ts @@ -8,7 +8,7 @@ import { } from "@nestjs/common"; import { Request } from "express"; -import { Membership } from "@calcom/prisma/client"; +import type { Membership } from "@calcom/prisma/client"; @Injectable() export class IsMembershipInOrg implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/organizations/is-admin-api-enabled.guard.ts b/apps/api/v2/src/modules/auth/guards/organizations/is-admin-api-enabled.guard.ts index 7efa0b32d5..0f7e2ddb83 100644 --- a/apps/api/v2/src/modules/auth/guards/organizations/is-admin-api-enabled.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/organizations/is-admin-api-enabled.guard.ts @@ -3,7 +3,7 @@ import { RedisService } from "@/modules/redis/redis.service"; import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; type CachedData = { org?: Team; diff --git a/apps/api/v2/src/modules/auth/guards/organizations/is-managed-org-in-manager-org.guard.ts b/apps/api/v2/src/modules/auth/guards/organizations/is-managed-org-in-manager-org.guard.ts index 5052d3dcbb..fdf255ab36 100644 --- a/apps/api/v2/src/modules/auth/guards/organizations/is-managed-org-in-manager-org.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/organizations/is-managed-org-in-manager-org.guard.ts @@ -2,7 +2,7 @@ import { ManagedOrganizationsRepository } from "@/modules/organizations/organiza import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class IsManagedOrgInManagerOrg implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/organizations/is-org.guard.ts b/apps/api/v2/src/modules/auth/guards/organizations/is-org.guard.ts index fb161d708c..31d287bfdf 100644 --- a/apps/api/v2/src/modules/auth/guards/organizations/is-org.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/organizations/is-org.guard.ts @@ -3,7 +3,7 @@ import { RedisService } from "@/modules/redis/redis.service"; import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; type CachedData = { org?: Team; diff --git a/apps/api/v2/src/modules/auth/guards/organizations/is-user-routing-form.guard.ts b/apps/api/v2/src/modules/auth/guards/organizations/is-user-routing-form.guard.ts index 1372b72e41..ad4042adaf 100644 --- a/apps/api/v2/src/modules/auth/guards/organizations/is-user-routing-form.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/organizations/is-user-routing-form.guard.ts @@ -3,7 +3,7 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class IsUserRoutingForm implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/organizations/is-webhook-in-org.guard.ts b/apps/api/v2/src/modules/auth/guards/organizations/is-webhook-in-org.guard.ts index eef472ac1f..1dc6e1dc95 100644 --- a/apps/api/v2/src/modules/auth/guards/organizations/is-webhook-in-org.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/organizations/is-webhook-in-org.guard.ts @@ -4,7 +4,7 @@ import { RedisService } from "@/modules/redis/redis.service"; import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; type CachedData = { org?: Team; diff --git a/apps/api/v2/src/modules/auth/guards/permissions/permissions.guard.ts b/apps/api/v2/src/modules/auth/guards/permissions/permissions.guard.ts index 9de4e86f10..ac14f182d1 100644 --- a/apps/api/v2/src/modules/auth/guards/permissions/permissions.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/permissions/permissions.guard.ts @@ -11,7 +11,7 @@ import { getToken } from "next-auth/jwt"; import { X_CAL_CLIENT_ID } from "@calcom/platform-constants"; import { hasPermissions } from "@calcom/platform-utils"; -import { PlatformOAuthClient } from "@calcom/prisma/client"; +import type { PlatformOAuthClient } from "@calcom/prisma/client"; @Injectable() export class PermissionsGuard implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/roles/roles.guard.ts b/apps/api/v2/src/modules/auth/guards/roles/roles.guard.ts index d3c1f5b3a8..cd56544d4a 100644 --- a/apps/api/v2/src/modules/auth/guards/roles/roles.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/roles/roles.guard.ts @@ -7,7 +7,7 @@ import { Injectable, CanActivate, ExecutionContext, ForbiddenException, Logger } import { Reflector } from "@nestjs/core"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class RolesGuard implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/routing-forms/is-routing-form-in-team.guard.ts b/apps/api/v2/src/modules/auth/guards/routing-forms/is-routing-form-in-team.guard.ts index 5cdd992087..5398b11d7a 100644 --- a/apps/api/v2/src/modules/auth/guards/routing-forms/is-routing-form-in-team.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/routing-forms/is-routing-form-in-team.guard.ts @@ -2,7 +2,7 @@ import { RoutingFormsRepository } from "@/modules/routing-forms/routing-forms.re import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class IsRoutingFormInTeam implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/teams/is-team-in-org.guard.ts b/apps/api/v2/src/modules/auth/guards/teams/is-team-in-org.guard.ts index 55e855389b..6fe688668d 100644 --- a/apps/api/v2/src/modules/auth/guards/teams/is-team-in-org.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/teams/is-team-in-org.guard.ts @@ -8,7 +8,7 @@ import { } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class IsTeamInOrg implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/users/is-user-in-org-team.guard.ts b/apps/api/v2/src/modules/auth/guards/users/is-user-in-org-team.guard.ts index 267190bf1d..9bc2ae28c6 100644 --- a/apps/api/v2/src/modules/auth/guards/users/is-user-in-org-team.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/users/is-user-in-org-team.guard.ts @@ -2,7 +2,7 @@ import { OrganizationsRepository } from "@/modules/organizations/index/organizat import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class IsUserInOrgTeam implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/guards/users/is-user-in-org.guard.ts b/apps/api/v2/src/modules/auth/guards/users/is-user-in-org.guard.ts index 0ba4d0490c..8e22057d0c 100644 --- a/apps/api/v2/src/modules/auth/guards/users/is-user-in-org.guard.ts +++ b/apps/api/v2/src/modules/auth/guards/users/is-user-in-org.guard.ts @@ -2,7 +2,7 @@ import { OrganizationsRepository } from "@/modules/organizations/index/organizat import { Injectable, CanActivate, ExecutionContext, ForbiddenException } from "@nestjs/common"; import { Request } from "express"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class IsUserInOrg implements CanActivate { diff --git a/apps/api/v2/src/modules/auth/strategies/api-auth/api-auth.strategy.e2e-spec.ts b/apps/api/v2/src/modules/auth/strategies/api-auth/api-auth.strategy.e2e-spec.ts index bbc52b6dbf..65a1e9f6bd 100644 --- a/apps/api/v2/src/modules/auth/strategies/api-auth/api-auth.strategy.e2e-spec.ts +++ b/apps/api/v2/src/modules/auth/strategies/api-auth/api-auth.strategy.e2e-spec.ts @@ -18,7 +18,6 @@ import { ConfigService } from "@nestjs/config"; import { ConfigModule } from "@nestjs/config"; import { JwtService as NestJwtService } from "@nestjs/jwt"; import { Test, TestingModule } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User } from "@prisma/client"; import { createRequest } from "node-mocks-http"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -31,6 +30,7 @@ import { MockedRedisService } from "test/mocks/mock-redis-service"; import { randomString } from "test/utils/randomString"; import { X_CAL_CLIENT_ID, X_CAL_SECRET_KEY } from "@calcom/platform-constants"; +import type { PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; import { ApiAuthGuardRequest } from "./api-auth.strategy"; import { ApiAuthStrategy } from "./api-auth.strategy"; diff --git a/apps/api/v2/src/modules/billing/controllers/billing.controller.e2e-spec.ts b/apps/api/v2/src/modules/billing/controllers/billing.controller.e2e-spec.ts index e41ff969f6..12573cc344 100644 --- a/apps/api/v2/src/modules/billing/controllers/billing.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/billing/controllers/billing.controller.e2e-spec.ts @@ -12,14 +12,13 @@ import Stripe from "stripe"; import * as request from "supertest"; import { PlatformBillingRepositoryFixture } from "test/fixtures/repository/billing.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; -import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { Team, PlatformOAuthClient, PlatformBilling } from "@calcom/prisma/client"; +import type { Team, PlatformBilling } from "@calcom/prisma/client"; describe("Platform Billing Controller (e2e)", () => { let app: INestApplication; @@ -30,8 +29,6 @@ describe("Platform Billing Controller (e2e)", () => { let organizationsRepositoryFixture: OrganizationRepositoryFixture; let profileRepositoryFixture: ProfileRepositoryFixture; let membershipsRepositoryFixture: MembershipRepositoryFixture; - let oauthClientRepositoryFixture: OAuthClientRepositoryFixture; - let oAuthClient: PlatformOAuthClient; let platformBillingRepositoryFixture: PlatformBillingRepositoryFixture; let organization: Team; @@ -45,7 +42,6 @@ describe("Platform Billing Controller (e2e)", () => { userRepositoryFixture = new UserRepositoryFixture(moduleRef); organizationsRepositoryFixture = new OrganizationRepositoryFixture(moduleRef); profileRepositoryFixture = new ProfileRepositoryFixture(moduleRef); - oauthClientRepositoryFixture = new OAuthClientRepositoryFixture(moduleRef); membershipsRepositoryFixture = new MembershipRepositoryFixture(moduleRef); platformBillingRepositoryFixture = new PlatformBillingRepositoryFixture(moduleRef); organization = await organizationsRepositoryFixture.create({ @@ -118,7 +114,7 @@ describe("Platform Billing Controller (e2e)", () => { .post("/v2/billing/webhook") .set("stripe-signature", "t=1234567890,v1=random_signature_for_e2e_test") .expect(200) - .then(async (res) => { + .then(async (/* res */) => { const billing = await platformBillingRepositoryFixture.get(organization.id); expect(billing?.plan).toEqual("FREE"); }); @@ -146,7 +142,7 @@ describe("Platform Billing Controller (e2e)", () => { .post("/v2/billing/webhook") .set("stripe-signature", "t=1234567890,v1=random_signature_for_e2e_test") .expect(200) - .then(async (res) => { + .then(async (/* res */) => { const billing = await platformBillingRepositoryFixture.get(organization.id); expect(billing?.overdue).toEqual(true); }); @@ -176,7 +172,7 @@ describe("Platform Billing Controller (e2e)", () => { .post("/v2/billing/webhook") .set("stripe-signature", "t=1234567890,v1=random_signature_for_e2e_test") .expect(200) - .then(async (res) => { + .then(async (/* res */) => { const billing = await platformBillingRepositoryFixture.get(organization.id); expect(billing?.overdue).toEqual(false); }); @@ -209,7 +205,7 @@ describe("Platform Billing Controller (e2e)", () => { .post("/v2/billing/webhook") .set("stripe-signature", "t=1234567890,v1=random_signature_for_e2e_test") .expect(200) - .then(async (res) => { + .then(async (/* res */) => { const billing = await platformBillingRepositoryFixture.get(organization.id); expect(billing).toBeNull(); }); diff --git a/apps/api/v2/src/modules/cal-unified-calendars/inputs/update-unified-calendar-event.input.ts b/apps/api/v2/src/modules/cal-unified-calendars/inputs/update-unified-calendar-event.input.ts index dc09c1c15d..b2734c59d8 100644 --- a/apps/api/v2/src/modules/cal-unified-calendars/inputs/update-unified-calendar-event.input.ts +++ b/apps/api/v2/src/modules/cal-unified-calendars/inputs/update-unified-calendar-event.input.ts @@ -2,7 +2,10 @@ import { ApiPropertyOptional } from "@nestjs/swagger"; import { Type } from "class-transformer"; import { IsISO8601, IsOptional, IsString, ValidateNested, IsEnum, IsArray } from "class-validator"; -import { CalendarEventStatus, CalendarEventResponseStatus } from "../outputs/get-unified-calendar-event.output"; +import { + CalendarEventStatus, + CalendarEventResponseStatus, +} from "../outputs/get-unified-calendar-event.output"; export class UpdateCalendarEventAttendee { @IsString() @@ -50,7 +53,6 @@ export class UpdateCalendarEventAttendee { description: "Indicates if this attendee is the host", }) host?: boolean; - } export class UpdateDateTimeWithZone { diff --git a/apps/api/v2/src/modules/cal-unified-calendars/outputs/get-unified-calendar-event.output.ts b/apps/api/v2/src/modules/cal-unified-calendars/outputs/get-unified-calendar-event.output.ts index 654936b4ca..7ed781f029 100644 --- a/apps/api/v2/src/modules/cal-unified-calendars/outputs/get-unified-calendar-event.output.ts +++ b/apps/api/v2/src/modules/cal-unified-calendars/outputs/get-unified-calendar-event.output.ts @@ -281,7 +281,6 @@ export class CalendarEventAttendee { }) optional?: boolean; - @IsOptional() @ApiPropertyOptional({ nullable: true, @@ -414,7 +413,8 @@ export class UnifiedCalendarEventOutput { @ApiPropertyOptional({ type: calendarEventOwner, nullable: true, - description: "The calendar account that owns this event. This is the primary calendar where the event is stored and cannot be modified without appropriate permissions. Changing this would require moving the event to a different calendar", + description: + "The calendar account that owns this event. This is the primary calendar where the event is stored and cannot be modified without appropriate permissions. Changing this would require moving the event to a different calendar", }) calendarEventOwner?: calendarEventOwner; diff --git a/apps/api/v2/src/modules/cal-unified-calendars/pipes/get-calendar-event-details-output-pipe.ts b/apps/api/v2/src/modules/cal-unified-calendars/pipes/get-calendar-event-details-output-pipe.ts index 40a2843a16..a2823b0115 100644 --- a/apps/api/v2/src/modules/cal-unified-calendars/pipes/get-calendar-event-details-output-pipe.ts +++ b/apps/api/v2/src/modules/cal-unified-calendars/pipes/get-calendar-event-details-output-pipe.ts @@ -95,21 +95,21 @@ export class GoogleCalendarEventOutputPipe if (googleEvent.attendees && googleEvent.attendees.length > 0) { calendarEvent.attendees = googleEvent.attendees.map((attendee) => { - return { - email: attendee.email, - name: attendee.displayName, - responseStatus: this.transformAttendeeResponseStatus(attendee.responseStatus), - host: attendee.organizer, - self: attendee.self, - optional: attendee.optional, - }; - }); + return { + email: attendee.email, + name: attendee.displayName, + responseStatus: this.transformAttendeeResponseStatus(attendee.responseStatus), + host: attendee.organizer, + self: attendee.self, + optional: attendee.optional, + }; + }); } calendarEvent.status = this.transformEventStatus(googleEvent.status); - calendarEvent.calendarEventOwner = googleEvent.organizer - calendarEvent.hosts = this.transformHosts(googleEvent) + calendarEvent.calendarEventOwner = googleEvent.organizer; + calendarEvent.hosts = this.transformHosts(googleEvent); calendarEvent.source = "google"; diff --git a/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input-pipe.ts b/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input-pipe.ts index 4a92a2918f..f3d5ab7707 100644 --- a/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input-pipe.ts +++ b/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input-pipe.ts @@ -5,7 +5,10 @@ import { UpdateUnifiedCalendarEventInput, UpdateDateTimeWithZone, } from "../inputs/update-unified-calendar-event.input"; -import { CalendarEventResponseStatus, CalendarEventStatus } from "../outputs/get-unified-calendar-event.output"; +import { + CalendarEventResponseStatus, + CalendarEventStatus, +} from "../outputs/get-unified-calendar-event.output"; // Common interfaces for Google Calendar types interface GoogleCalendarDateTime { @@ -29,9 +32,7 @@ interface GoogleCalendarEventInputTransform { @Injectable() export class GoogleCalendarEventInputPipe implements GoogleCalendarEventInputTransform { - transform( - updateData: UpdateUnifiedCalendarEventInput, - ): any { + transform(updateData: UpdateUnifiedCalendarEventInput): any { const updatePayload: any = {}; if (updateData.title !== undefined) { @@ -51,9 +52,7 @@ export class GoogleCalendarEventInputPipe implements GoogleCalendarEventInputTra } if (updateData.attendees !== undefined) { - updatePayload.attendees = this.transformAttendees( - updateData.attendees, - ); + updatePayload.attendees = this.transformAttendees(updateData.attendees); } if (updateData.status !== undefined) { @@ -71,18 +70,18 @@ export class GoogleCalendarEventInputPipe implements GoogleCalendarEventInputTra } private transformAttendees( - inputAttendees: NonNullable, + inputAttendees: NonNullable ): GoogleCalendarAttendee[] { - return inputAttendees.map((attendee) => { - return { - email: attendee.email, - displayName: attendee.name, - responseStatus: this.transformResponseStatus(attendee.responseStatus), - organizer: attendee.host, - self: attendee.self, - optional: attendee.optional, - }; - }); + return inputAttendees.map((attendee) => { + return { + email: attendee.email, + displayName: attendee.name, + responseStatus: this.transformResponseStatus(attendee.responseStatus), + organizer: attendee.host, + self: attendee.self, + optional: attendee.optional, + }; + }); } private transformResponseStatus(responseStatus?: CalendarEventResponseStatus | null): string { diff --git a/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input.pipe.spec.ts b/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input.pipe.spec.ts index 4221e5a648..7706b1f773 100644 --- a/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input.pipe.spec.ts +++ b/apps/api/v2/src/modules/cal-unified-calendars/pipes/google-calendar-event-input.pipe.spec.ts @@ -2,65 +2,14 @@ import { UpdateUnifiedCalendarEventInput, UpdateDateTimeWithZone, } from "../inputs/update-unified-calendar-event.input"; -import { CalendarEventResponseStatus, CalendarEventStatus } from "../outputs/get-unified-calendar-event.output"; -import { GoogleCalendarEventResponse } from "./get-calendar-event-details-output-pipe"; +import { + CalendarEventResponseStatus, + CalendarEventStatus, +} from "../outputs/get-unified-calendar-event.output"; import { GoogleCalendarEventInputPipe } from "./google-calendar-event-input-pipe"; describe("GoogleCalendarEventInputPipe", () => { let pipe: GoogleCalendarEventInputPipe; - let sharedGoogleEvent: GoogleCalendarEventResponse; - - beforeAll(() => { - sharedGoogleEvent = { - kind: "calendar#event", - etag: "test-etag", - id: "test-event-id", - status: "confirmed", - htmlLink: "https://calendar.google.com/event", - created: "2024-01-01T00:00:00Z", - updated: "2024-01-01T00:00:00Z", - summary: "Test Meeting", - description: "Test description", - start: { - dateTime: "2024-01-15T10:00:00Z", - timeZone: "America/New_York", - }, - end: { - dateTime: "2024-01-15T11:00:00Z", - timeZone: "America/New_York", - }, - iCalUID: "test-ical-uid", - sequence: 0, - attendees: [ - { - email: "attendee1@example.com", - displayName: "Attendee One", - responseStatus: "accepted", - organizer: false, - }, - { - email: "attendee2@example.com", - displayName: "Attendee Two", - responseStatus: "needsAction", - organizer: false, - }, - { - email: "organizer@example.com", - displayName: "Organizer", - responseStatus: "accepted", - organizer: true, - }, - ], - creator: { - email: "organizer@example.com", - displayName: "Organizer", - }, - organizer: { - email: "organizer@example.com", - displayName: "Organizer", - }, - }; - }); beforeEach(() => { pipe = new GoogleCalendarEventInputPipe(); diff --git a/apps/api/v2/src/modules/cal-unified-calendars/services/google-calendar.service.ts b/apps/api/v2/src/modules/cal-unified-calendars/services/google-calendar.service.ts index c01bd9ece6..ecdc196a06 100644 --- a/apps/api/v2/src/modules/cal-unified-calendars/services/google-calendar.service.ts +++ b/apps/api/v2/src/modules/cal-unified-calendars/services/google-calendar.service.ts @@ -5,10 +5,10 @@ import { calendar_v3 } from "@googleapis/calendar"; import { Injectable, UnauthorizedException } from "@nestjs/common"; import { NotFoundException } from "@nestjs/common"; import { Logger } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; import { JWT } from "googleapis-common"; import { DelegationCredentialRepository, OAuth2UniversalSchema } from "@calcom/platform-libraries/app-store"; +import type { Prisma } from "@calcom/prisma/client"; import { UpdateUnifiedCalendarEventInput } from "../inputs/update-unified-calendar-event.input"; import { GoogleCalendarEventInputPipe } from "../pipes/google-calendar-event-input-pipe"; @@ -73,7 +73,6 @@ export class GoogleCalendarService { bookingReference.delegationCredential ); - const updatePayload = new GoogleCalendarEventInputPipe().transform(updateData); try { diff --git a/apps/api/v2/src/modules/conferencing/controllers/conferencing.controller.e2e-spec.ts b/apps/api/v2/src/modules/conferencing/controllers/conferencing.controller.e2e-spec.ts index 7ab7365365..e82d5b9ae0 100644 --- a/apps/api/v2/src/modules/conferencing/controllers/conferencing.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/conferencing/controllers/conferencing.controller.e2e-spec.ts @@ -7,7 +7,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { CredentialsRepositoryFixture } from "test/fixtures/repository/credentials.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; @@ -15,14 +14,14 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { - ERROR_STATUS, GOOGLE_CALENDAR_ID, GOOGLE_CALENDAR_TYPE, GOOGLE_MEET, GOOGLE_MEET_TYPE, SUCCESS_STATUS, } from "@calcom/platform-constants"; -import { ApiErrorResponse, ApiSuccessResponse } from "@calcom/platform-types"; +import type { ApiSuccessResponse } from "@calcom/platform-types"; +import type { User } from "@calcom/prisma/client"; describe("Conferencing Endpoints", () => { describe("conferencing controller e2e tests", () => { diff --git a/apps/api/v2/src/modules/conferencing/repositories/conferencing.repository.ts b/apps/api/v2/src/modules/conferencing/repositories/conferencing.repository.ts index 97eb52a90c..e66e1de8d0 100644 --- a/apps/api/v2/src/modules/conferencing/repositories/conferencing.repository.ts +++ b/apps/api/v2/src/modules/conferencing/repositories/conferencing.repository.ts @@ -1,9 +1,9 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; import { GOOGLE_MEET_TYPE } from "@calcom/platform-constants"; +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class ConferencingRepository { diff --git a/apps/api/v2/src/modules/conferencing/services/office365-video.service.ts b/apps/api/v2/src/modules/conferencing/services/office365-video.service.ts index 73ae3f6a1f..a8eaf36cbe 100644 --- a/apps/api/v2/src/modules/conferencing/services/office365-video.service.ts +++ b/apps/api/v2/src/modules/conferencing/services/office365-video.service.ts @@ -4,10 +4,10 @@ import { CredentialsRepository } from "@/modules/credentials/credentials.reposit import { BadRequestException, Logger, NotFoundException } from "@nestjs/common"; import { Injectable } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; -import type { Prisma } from "@prisma/client"; import { z } from "zod"; import { OFFICE_365_VIDEO, OFFICE_365_VIDEO_TYPE } from "@calcom/platform-constants"; +import type { Prisma } from "@calcom/prisma/client"; import stringify = require("qs-stringify"); diff --git a/apps/api/v2/src/modules/conferencing/services/zoom-video.service.ts b/apps/api/v2/src/modules/conferencing/services/zoom-video.service.ts index 761876540c..7f99835e4f 100644 --- a/apps/api/v2/src/modules/conferencing/services/zoom-video.service.ts +++ b/apps/api/v2/src/modules/conferencing/services/zoom-video.service.ts @@ -4,10 +4,10 @@ import { CredentialsRepository } from "@/modules/credentials/credentials.reposit import { BadRequestException, Logger, NotFoundException, UnauthorizedException } from "@nestjs/common"; import { Injectable } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; -import type { Prisma } from "@prisma/client"; import { z } from "zod"; import { ZOOM, ZOOM_TYPE } from "@calcom/platform-constants"; +import type { Prisma } from "@calcom/prisma/client"; import stringify = require("qs-stringify"); diff --git a/apps/api/v2/src/modules/credentials/credentials.repository.ts b/apps/api/v2/src/modules/credentials/credentials.repository.ts index 52c2af9a2c..a1017e1ee5 100644 --- a/apps/api/v2/src/modules/credentials/credentials.repository.ts +++ b/apps/api/v2/src/modules/credentials/credentials.repository.ts @@ -1,10 +1,10 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; import { APPS_TYPE_ID_MAPPING } from "@calcom/platform-constants"; import { credentialForCalendarServiceSelect } from "@calcom/platform-libraries"; +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class CredentialsRepository { diff --git a/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts b/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts index 560f24d740..b298df5453 100644 --- a/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/destination-calendars/controllers/destination-calendars.controller.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User, Credential } from "@prisma/client"; import * as request from "supertest"; import { CredentialsRepositoryFixture } from "test/fixtures/repository/credentials.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -21,6 +20,7 @@ import { randomString } from "test/utils/randomString"; import { APPLE_CALENDAR_TYPE, APPLE_CALENDAR_ID } from "@calcom/platform-constants"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { PlatformOAuthClient, Team, User, Credential } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:5555"; diff --git a/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.e2e-spec.ts b/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.e2e-spec.ts index 25a832fc9e..5ee7b8d2af 100644 --- a/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.e2e-spec.ts @@ -20,7 +20,7 @@ import { WebhookRepositoryFixture } from "test/fixtures/repository/webhooks.repo import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { EventType, Webhook } from "@calcom/prisma/client"; +import type { EventType, Webhook } from "@calcom/prisma/client"; describe("EventTypes WebhooksController (e2e)", () => { let app: INestApplication; @@ -36,7 +36,6 @@ describe("EventTypes WebhooksController (e2e)", () => { let webhookRepositoryFixture: WebhookRepositoryFixture; let webhook: EventTypeWebhookOutputResponseDto["data"]; - let webhook2: Webhook; let otherWebhook: Webhook; beforeAll(async () => { @@ -155,7 +154,7 @@ describe("EventTypes WebhooksController (e2e)", () => { eventTypeId: eventType2.id, }, } satisfies EventTypeWebhookOutputResponseDto); - webhook2 = res.body.data; + //webhook2 = res.body.data; }); }); diff --git a/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.ts b/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.ts index 1953cea1d4..a9e1ef40f9 100644 --- a/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.ts +++ b/apps/api/v2/src/modules/event-types/controllers/event-types-webhooks.controller.ts @@ -27,11 +27,11 @@ import { ParseIntPipe, } from "@nestjs/common"; import { ApiHeader, ApiOperation, ApiTags as DocsTags } from "@nestjs/swagger"; -import { Webhook } from "@prisma/client"; import { plainToClass } from "class-transformer"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; import { SkipTakePagination } from "@calcom/platform-types"; +import type { Webhook } from "@calcom/prisma/client"; @Controller({ path: "/v2/event-types/:eventTypeId/webhooks", diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts index e521f05a29..3e43f64941 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts @@ -16,7 +16,6 @@ import { INestApplication } from "@nestjs/common"; import { JwtService } from "@nestjs/jwt"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User, EventType } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -29,7 +28,8 @@ import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; import { slugify } from "@calcom/platform-libraries"; -import { ApiSuccessResponse } from "@calcom/platform-types"; +import type { ApiSuccessResponse } from "@calcom/platform-types"; +import type { PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:4321"; @@ -732,7 +732,6 @@ describe("OAuth Client Users Endpoints", () => { let team2: Team; let owner: User; - let managedEventType1: EventType; let userRepositoryFixture: UserRepositoryFixture; let oauthClientRepositoryFixture: OAuthClientRepositoryFixture; let teamRepositoryFixture: TeamRepositoryFixture; @@ -824,7 +823,7 @@ describe("OAuth Client Users Endpoints", () => { locations: [], }); - managedEventType1 = await eventTypesRepositoryFixture.createTeamEventType({ + await eventTypesRepositoryFixture.createTeamEventType({ schedulingType: "MANAGED", team: { connect: { id: team1.id }, diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.ts index 09a44b53fb..9643fc6f38 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.ts @@ -32,10 +32,10 @@ import { NotFoundException, } from "@nestjs/common"; import { ApiOperation, ApiTags as DocsTags, ApiHeader } from "@nestjs/swagger"; -import { User } from "@prisma/client"; import { SUCCESS_STATUS, X_CAL_SECRET_KEY } from "@calcom/platform-constants"; import { MembershipRole } from "@calcom/platform-libraries"; +import type { User } from "@calcom/prisma/client"; @Controller({ path: "/v2/oauth-clients/:clientId/users", diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.e2e-spec.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.e2e-spec.ts index e38460aecd..039c364f68 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.e2e-spec.ts @@ -23,7 +23,7 @@ import { WebhookRepositoryFixture } from "test/fixtures/repository/webhooks.repo import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { PlatformOAuthClient, Team, Webhook } from "@calcom/prisma/client"; +import type { PlatformOAuthClient, Team, Webhook } from "@calcom/prisma/client"; describe("OAuth client WebhooksController (e2e)", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.ts index 14b74f1804..a1c3c1c082 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-webhooks/oauth-client-webhooks.controller.ts @@ -17,12 +17,12 @@ import { OAuthClientWebhooksService } from "@/modules/webhooks/services/oauth-cl import { WebhooksService } from "@/modules/webhooks/services/webhooks.service"; import { Controller, Post, Body, UseGuards, Get, Param, Query, Delete, Patch } from "@nestjs/common"; import { ApiHeader, ApiOperation, ApiTags as DocsTags } from "@nestjs/swagger"; -import { Webhook } from "@prisma/client"; import { plainToClass } from "class-transformer"; import { SUCCESS_STATUS, X_CAL_SECRET_KEY } from "@calcom/platform-constants"; import { MembershipRole } from "@calcom/platform-libraries"; import { SkipTakePagination } from "@calcom/platform-types"; +import type { Webhook } from "@calcom/prisma/client"; import { OAuthClientGuard } from "../../guards/oauth-client-guard"; diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-clients/oauth-clients.controller.e2e-spec.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-clients/oauth-clients.controller.e2e-spec.ts index b359c4126f..03472f31df 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-clients/oauth-clients.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-clients/oauth-clients.controller.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { Membership, PlatformOAuthClient, Team, User } from "@prisma/client"; import * as request from "supertest"; import { PlatformBillingRepositoryFixture } from "test/fixtures/repository/billing.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -34,8 +33,12 @@ import { SCHEDULE_WRITE, SUCCESS_STATUS, } from "@calcom/platform-constants"; -import type { CreateOAuthClientInput, UpdateOAuthClientInput } from "@calcom/platform-types"; -import { ApiSuccessResponse } from "@calcom/platform-types"; +import type { + CreateOAuthClientInput, + UpdateOAuthClientInput, + ApiSuccessResponse, +} from "@calcom/platform-types"; +import type { Membership, PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; describe("OAuth Clients Endpoints", () => { describe("User Not Authenticated", () => { diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-flow/oauth-flow.controller.e2e-spec.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-flow/oauth-flow.controller.e2e-spec.ts index 65a6c81aa1..04ff32488d 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-flow/oauth-flow.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-flow/oauth-flow.controller.e2e-spec.ts @@ -13,18 +13,17 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test, TestingModule } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User } from "@prisma/client"; import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; -import { TeamRepositoryFixture } from "test/fixtures/repository/team.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { randomString } from "test/utils/randomString"; import { withNextAuth } from "test/utils/withNextAuth"; import { X_CAL_SECRET_KEY } from "@calcom/platform-constants"; +import type { PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; describe("OAuthFlow Endpoints", () => { describe("User Not Authenticated", () => { diff --git a/apps/api/v2/src/modules/oauth-clients/oauth-client.repository.ts b/apps/api/v2/src/modules/oauth-clients/oauth-client.repository.ts index 6666e96445..8bd8c45920 100644 --- a/apps/api/v2/src/modules/oauth-clients/oauth-client.repository.ts +++ b/apps/api/v2/src/modules/oauth-clients/oauth-client.repository.ts @@ -1,7 +1,8 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { PlatformOAuthClient, Prisma } from "@prisma/client"; + +import type { PlatformOAuthClient, Prisma } from "@calcom/prisma/client"; @Injectable() export class OAuthClientRepository { diff --git a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users-output.service.ts b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users-output.service.ts index d5e384fca5..8b87c51876 100644 --- a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users-output.service.ts +++ b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users-output.service.ts @@ -1,8 +1,9 @@ import { ManagedUserOutput } from "@/modules/oauth-clients/controllers/oauth-client-users/outputs/managed-user.output"; import { Injectable } from "@nestjs/common"; -import { User } from "@prisma/client"; import { plainToInstance } from "class-transformer"; +import type { User } from "@calcom/prisma/client"; + @Injectable() export class OAuthClientUsersOutputService { getResponseUser(user: User) { diff --git a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts index 7f0d3d69d9..1fe87e3fa6 100644 --- a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts +++ b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts @@ -8,10 +8,9 @@ import { CreateManagedUserInput } from "@/modules/users/inputs/create-managed-us import { UpdateManagedUserInput } from "@/modules/users/inputs/update-managed-user.input"; import { UsersRepository } from "@/modules/users/users.repository"; import { BadRequestException, ConflictException, Injectable, Logger } from "@nestjs/common"; -import { User, PlatformOAuthClient } from "@prisma/client"; -import { createNewUsersConnectToOrgIfExists, slugify } from "@calcom/platform-libraries"; -import { CreationSource } from "@calcom/platform-libraries"; +import { createNewUsersConnectToOrgIfExists, slugify, CreationSource } from "@calcom/platform-libraries"; +import type { User, PlatformOAuthClient } from "@calcom/prisma/client"; @Injectable() export class OAuthClientUsersService { diff --git a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients/oauth-clients-output.service.ts b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients/oauth-clients-output.service.ts index c5f9447065..217a75d289 100644 --- a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients/oauth-clients-output.service.ts +++ b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients/oauth-clients-output.service.ts @@ -1,8 +1,8 @@ import { Injectable } from "@nestjs/common"; -import { PlatformOAuthClient } from "@prisma/client"; import { PERMISSIONS, PERMISSION_MAP } from "@calcom/platform-constants"; -import { PlatformOAuthClientDto } from "@calcom/platform-types"; +import type { PlatformOAuthClientDto } from "@calcom/platform-types"; +import type { PlatformOAuthClient } from "@calcom/prisma/client"; @Injectable() export class OAuthClientsOutputService { @@ -37,6 +37,7 @@ export class OAuthClientsOutputService { transformOAuthClientPermission(permission: (typeof PERMISSIONS)[number]): keyof typeof PERMISSION_MAP { return Object.entries(PERMISSION_MAP).find( + // eslint-disable-next-line @typescript-eslint/no-unused-vars ([_, value]) => value === permission )?.[0] as keyof typeof PERMISSION_MAP; } diff --git a/apps/api/v2/src/modules/ooo/services/ooo.service.ts b/apps/api/v2/src/modules/ooo/services/ooo.service.ts index 0bc489b9b6..62c3b4402b 100644 --- a/apps/api/v2/src/modules/ooo/services/ooo.service.ts +++ b/apps/api/v2/src/modules/ooo/services/ooo.service.ts @@ -2,14 +2,12 @@ import { CreateOutOfOfficeEntryDto, UpdateOutOfOfficeEntryDto, OutOfOfficeReason, - GetOutOfOfficeEntryFiltersDTO, - SortOrder, } from "@/modules/ooo/inputs/ooo.input"; import { UserOOORepository } from "@/modules/ooo/repositories/ooo.repository"; import { UsersRepository } from "@/modules/users/users.repository"; import { BadRequestException, ConflictException, Injectable } from "@nestjs/common"; -import { OutOfOfficeEntry } from "@calcom/prisma/client"; +import type { OutOfOfficeEntry } from "@calcom/prisma/client"; const OOO_REASON_ID_TO_REASON = { 1: OutOfOfficeReason["UNSPECIFIED"], diff --git a/apps/api/v2/src/modules/organizations/attributes/index/controllers/organization-attributes.e2e-spec.ts b/apps/api/v2/src/modules/organizations/attributes/index/controllers/organization-attributes.e2e-spec.ts index a73244e651..566f7aa7f1 100644 --- a/apps/api/v2/src/modules/organizations/attributes/index/controllers/organization-attributes.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/attributes/index/controllers/organization-attributes.e2e-spec.ts @@ -16,7 +16,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { User, Team, Membership } from "@calcom/prisma/client"; +import type { User, Team, Membership } from "@calcom/prisma/client"; describe("Organizations Attributes Endpoints", () => { describe("User lacks required role", () => { diff --git a/apps/api/v2/src/modules/organizations/attributes/options/organization-attributes-options.e2e-spec.ts b/apps/api/v2/src/modules/organizations/attributes/options/organization-attributes-options.e2e-spec.ts index 8bf509d619..df9bfcfe93 100644 --- a/apps/api/v2/src/modules/organizations/attributes/options/organization-attributes-options.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/attributes/options/organization-attributes-options.e2e-spec.ts @@ -21,7 +21,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { User, Team, Membership, Attribute, AttributeOption } from "@calcom/prisma/client"; +import type { User, Team, Membership, Attribute, AttributeOption } from "@calcom/prisma/client"; describe("Organizations Attributes Options Endpoints", () => { describe("User lacks required role", () => { diff --git a/apps/api/v2/src/modules/organizations/bookings/managed-organizations-bookings.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/bookings/managed-organizations-bookings.controller.e2e-spec.ts index 25ee8a5073..64cdeadb33 100644 --- a/apps/api/v2/src/modules/organizations/bookings/managed-organizations-bookings.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/bookings/managed-organizations-bookings.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { OrganizationsTeamsBookingsModule } from "@/modules/organizations/teams/ import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -30,13 +29,13 @@ import { X_CAL_CLIENT_ID, X_CAL_SECRET_KEY, } from "@calcom/platform-constants"; -import { +import type { BookingOutput_2024_08_13, RecurringBookingOutput_2024_08_13, GetBookingsOutput_2024_08_13, GetSeatedBookingOutput_2024_08_13, } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Organizations Bookings Endpoints 2024-08-13", () => { describe("Manager and managed organizations bookings", () => { diff --git a/apps/api/v2/src/modules/organizations/bookings/organizations-bookings.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/bookings/organizations-bookings.controller.e2e-spec.ts index 3d8122893e..10c4876b3f 100644 --- a/apps/api/v2/src/modules/organizations/bookings/organizations-bookings.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/bookings/organizations-bookings.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { OrganizationsTeamsBookingsModule } from "@/modules/organizations/teams/ import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -28,14 +27,14 @@ import { X_CAL_CLIENT_ID, X_CAL_SECRET_KEY, } from "@calcom/platform-constants"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, RecurringBookingOutput_2024_08_13, GetBookingsOutput_2024_08_13, GetSeatedBookingOutput_2024_08_13, } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Organizations Bookings Endpoints 2024-08-13", () => { describe("Organization bookings", () => { diff --git a/apps/api/v2/src/modules/organizations/delegation-credentials/organizations-delegation-credential.controller.ts b/apps/api/v2/src/modules/organizations/delegation-credentials/organizations-delegation-credential.controller.ts index 95eb650961..92397d6197 100644 --- a/apps/api/v2/src/modules/organizations/delegation-credentials/organizations-delegation-credential.controller.ts +++ b/apps/api/v2/src/modules/organizations/delegation-credentials/organizations-delegation-credential.controller.ts @@ -29,12 +29,12 @@ import { Patch, } from "@nestjs/common"; import { ApiHeader, ApiOperation, ApiTags as DocsTags } from "@nestjs/swagger"; -import { User } from "@prisma/client"; import { plainToClass } from "class-transformer"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { User } from "@calcom/prisma/client"; -import { CreateDelegationCredentialInput } from "./inputs/create-delegation-credential.input"; +import type { CreateDelegationCredentialInput } from "./inputs/create-delegation-credential.input"; @Controller({ path: "/v2/organizations/:orgId/delegation-credentials", diff --git a/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts b/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts index 3c06d4d39d..6541b40ef9 100644 --- a/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts +++ b/apps/api/v2/src/modules/organizations/delegation-credentials/services/organizations-delegation-credential.service.ts @@ -12,7 +12,6 @@ import { UpdateDelegationCredentialInput } from "@/modules/organizations/delegat import { OrganizationsDelegationCredentialRepository } from "@/modules/organizations/delegation-credentials/organizations-delegation-credential.repository"; import { InjectQueue } from "@nestjs/bull"; import { Injectable, NotFoundException, Logger } from "@nestjs/common"; -import { User } from "@prisma/client"; import { Queue } from "bull"; import { encryptServiceAccountKey } from "@calcom/platform-libraries"; @@ -21,6 +20,7 @@ import { toggleDelegationCredentialEnabled, type TServiceAccountKeySchema, } from "@calcom/platform-libraries/app-store"; +import type { User } from "@calcom/prisma/client"; @Injectable() export class OrganizationsDelegationCredentialService { diff --git a/apps/api/v2/src/modules/organizations/event-types/assign-all-team-members.e2e-spec.ts b/apps/api/v2/src/modules/organizations/event-types/assign-all-team-members.e2e-spec.ts index fa882df1a8..d0a60b49e2 100644 --- a/apps/api/v2/src/modules/organizations/event-types/assign-all-team-members.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/event-types/assign-all-team-members.e2e-spec.ts @@ -16,7 +16,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { HostsRepositoryFixture } from "test/fixtures/repository/hosts.repository.fixture"; @@ -28,7 +27,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS, X_CAL_CLIENT_ID, X_CAL_SECRET_KEY } from "@calcom/platform-constants"; -import { +import type { ApiSuccessResponse, CreateTeamEventTypeInput_2024_06_14, Host, @@ -36,6 +35,7 @@ import { TeamEventTypeOutput_2024_06_14, UpdateTeamEventTypeInput_2024_06_14, } from "@calcom/platform-types"; +import type { PlatformOAuthClient, Team, User } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:4321"; @@ -63,7 +63,6 @@ describe("Assign all team members", () => { let firstManagedUser: CreateManagedUserData; let secondManagedUser: CreateManagedUserData; - let collectiveEventType: TeamEventTypeOutput_2024_06_14; let roundRobinEventType: TeamEventTypeOutput_2024_06_14; beforeAll(async () => { @@ -316,7 +315,6 @@ describe("Assign all team members", () => { const secondHost = eventTypeHosts.find((host) => host.userId === secondManagedUser.user.id); expect(firstHost).toBeDefined(); expect(secondHost).toBeDefined(); - collectiveEventType = data; }); }); diff --git a/apps/api/v2/src/modules/organizations/event-types/organizations-event-types.e2e-spec.ts b/apps/api/v2/src/modules/organizations/event-types/organizations-event-types.e2e-spec.ts index c28c7a2fda..d33e9c12e5 100644 --- a/apps/api/v2/src/modules/organizations/event-types/organizations-event-types.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/event-types/organizations-event-types.e2e-spec.ts @@ -6,7 +6,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -25,7 +24,7 @@ import { NoticeThresholdUnitEnum, } from "@calcom/platform-enums"; import { SchedulingType } from "@calcom/platform-libraries"; -import { +import type { ApiSuccessResponse, CreateTeamEventTypeInput_2024_06_14, EventTypeOutput_2024_06_14, @@ -33,7 +32,7 @@ import { TeamEventTypeOutput_2024_06_14, UpdateTeamEventTypeInput_2024_06_14, } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; describe("Organizations Event Types Endpoints", () => { describe("User Authentication - User is Org Admin", () => { diff --git a/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts b/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts index 3925278fc1..67cf769e1e 100644 --- a/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts +++ b/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts @@ -2,6 +2,9 @@ import { OutputEventTypesService_2024_06_14 } from "@/ee/event-types/event-types import { TeamsEventTypesRepository } from "@/modules/teams/event-types/teams-event-types.repository"; import { UsersRepository } from "@/modules/users/users.repository"; import { Injectable } from "@nestjs/common"; + +import { SchedulingType } from "@calcom/platform-libraries"; +import type { HostPriority, TeamEventTypeResponseHost } from "@calcom/platform-types"; import type { Team, EventType, @@ -10,10 +13,7 @@ import type { Host, DestinationCalendar, CalVideoSettings, -} from "@prisma/client"; - -import { SchedulingType } from "@calcom/platform-libraries"; -import { HostPriority, TeamEventTypeResponseHost } from "@calcom/platform-types"; +} from "@calcom/prisma/client"; type EventTypeRelations = { users: User[]; diff --git a/apps/api/v2/src/modules/organizations/memberships/organizations-membership.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/memberships/organizations-membership.controller.e2e-spec.ts index 931d457e73..15d6c42a00 100644 --- a/apps/api/v2/src/modules/organizations/memberships/organizations-membership.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/memberships/organizations-membership.controller.e2e-spec.ts @@ -15,7 +15,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { Attribute, AttributeOption, User } from "@prisma/client"; import * as request from "supertest"; import { AttributeRepositoryFixture } from "test/fixtures/repository/attributes.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -25,7 +24,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { Membership, Team } from "@calcom/prisma/client"; +import type { Attribute, AttributeOption, User, Membership, Team } from "@calcom/prisma/client"; describe("Organizations Memberships Endpoints", () => { describe("User Authentication - User is Org Admin", () => { @@ -444,7 +443,6 @@ describe("Organizations Memberships Endpoints", () => { let userRepositoryFixture: UserRepositoryFixture; let organizationsRepositoryFixture: OrganizationRepositoryFixture; let membershipRepositoryFixture: MembershipRepositoryFixture; - let attributesRepositoryFixture: AttributeRepositoryFixture; let org: Team; let membership: Membership; @@ -463,7 +461,6 @@ describe("Organizations Memberships Endpoints", () => { userRepositoryFixture = new UserRepositoryFixture(moduleRef); organizationsRepositoryFixture = new OrganizationRepositoryFixture(moduleRef); membershipRepositoryFixture = new MembershipRepositoryFixture(moduleRef); - attributesRepositoryFixture = new AttributeRepositoryFixture(moduleRef); user = await userRepositoryFixture.create({ email: userEmail, diff --git a/apps/api/v2/src/modules/organizations/memberships/organizations-membership.repository.ts b/apps/api/v2/src/modules/organizations/memberships/organizations-membership.repository.ts index 14b718cda2..9c294a5f46 100644 --- a/apps/api/v2/src/modules/organizations/memberships/organizations-membership.repository.ts +++ b/apps/api/v2/src/modules/organizations/memberships/organizations-membership.repository.ts @@ -6,7 +6,7 @@ import { Injectable } from "@nestjs/common"; import type { Prisma } from "@calcom/prisma/client"; -import { UpdateOrgMembershipDto } from "./inputs/update-organization-membership.input"; +import type { UpdateOrgMembershipDto } from "./inputs/update-organization-membership.input"; export type DbOrgMembership = Awaited>; diff --git a/apps/api/v2/src/modules/organizations/organizations/organizations-organizations.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/organizations/organizations-organizations.controller.e2e-spec.ts index d949e3ea92..26595eb5d6 100644 --- a/apps/api/v2/src/modules/organizations/organizations/organizations-organizations.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/organizations/organizations-organizations.controller.e2e-spec.ts @@ -18,7 +18,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformBilling, User } from "@prisma/client"; import { advanceTo, clear } from "jest-date-mock"; import { DateTime } from "luxon"; import * as request from "supertest"; @@ -29,7 +28,6 @@ import { MembershipRepositoryFixture } from "test/fixtures/repository/membership import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; -import { TeamRepositoryFixture } from "test/fixtures/repository/team.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { randomString } from "test/utils/randomString"; @@ -47,16 +45,14 @@ import { X_CAL_SECRET_KEY, } from "@calcom/platform-constants"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { slugify } from "@calcom/platform-libraries"; -import { ApiSuccessResponse, CreateOAuthClientInput } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { ApiSuccessResponse, CreateOAuthClientInput } from "@calcom/platform-types"; +import type { PlatformBilling, User, Team } from "@calcom/prisma/client"; describe("Organizations Organizations Endpoints", () => { let app: INestApplication; let userRepositoryFixture: UserRepositoryFixture; let organizationsRepositoryFixture: OrganizationRepositoryFixture; - let teamsRepositoryFixture: TeamRepositoryFixture; let membershipsRepositoryFixture: MembershipRepositoryFixture; let platformBillingRepositoryFixture: PlatformBillingRepositoryFixture; let managedOrganizationsRepositoryFixture: ManagedOrganizationsRepositoryFixture; @@ -90,7 +86,6 @@ describe("Organizations Organizations Endpoints", () => { userRepositoryFixture = new UserRepositoryFixture(moduleRef); organizationsRepositoryFixture = new OrganizationRepositoryFixture(moduleRef); - teamsRepositoryFixture = new TeamRepositoryFixture(moduleRef); membershipsRepositoryFixture = new MembershipRepositoryFixture(moduleRef); platformBillingRepositoryFixture = new PlatformBillingRepositoryFixture(moduleRef); managedOrganizationsRepositoryFixture = new ManagedOrganizationsRepositoryFixture(moduleRef); diff --git a/apps/api/v2/src/modules/organizations/organizations/services/managed-organizations-output.service.ts b/apps/api/v2/src/modules/organizations/organizations/services/managed-organizations-output.service.ts index d4b9ff13fc..d688678fc4 100644 --- a/apps/api/v2/src/modules/organizations/organizations/services/managed-organizations-output.service.ts +++ b/apps/api/v2/src/modules/organizations/organizations/services/managed-organizations-output.service.ts @@ -2,7 +2,7 @@ import { ManagedOrganizationOutput } from "@/modules/organizations/organizations import { Injectable } from "@nestjs/common"; import { plainToClass } from "class-transformer"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class ManagedOrganizationsOutputService { diff --git a/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms-responses.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms-responses.controller.e2e-spec.ts index 37ddd222b8..f48a583a5c 100644 --- a/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms-responses.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms-responses.controller.e2e-spec.ts @@ -7,7 +7,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { App_RoutingForms_Form, App_RoutingForms_FormResponse, Team, User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -18,6 +17,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { App_RoutingForms_Form, App_RoutingForms_FormResponse, Team, User } from "@calcom/prisma/client"; describe("OrganizationsRoutingFormsResponsesController", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms.controller.e2e-spec.ts index bbab484577..ba9866affc 100644 --- a/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/routing-forms/controllers/organizations-routing-forms.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { App_RoutingForms_Form, App_RoutingForms_FormResponse, Team, User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -19,6 +18,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { App_RoutingForms_Form, Team, User } from "@calcom/prisma/client"; describe("OrganizationsRoutingFormController", () => { let app: INestApplication; @@ -27,8 +27,6 @@ describe("OrganizationsRoutingFormController", () => { let team: Team; let apiKeyString: string; let routingForm: App_RoutingForms_Form; - let routingFormResponse: App_RoutingForms_FormResponse; - let routingFormResponse2: App_RoutingForms_FormResponse; let apiKeysRepositoryFixture: ApiKeysRepositoryFixture; let teamRepositoryFixture: TeamRepositoryFixture; @@ -105,14 +103,14 @@ describe("OrganizationsRoutingFormController", () => { }, }); - routingFormResponse = await prismaWriteService.prisma.app_RoutingForms_FormResponse.create({ + await prismaWriteService.prisma.app_RoutingForms_FormResponse.create({ data: { formId: routingForm.id, response: JSON.stringify({ question1: "answer1", question2: "answer2" }), }, }); - routingFormResponse2 = await prismaWriteService.prisma.app_RoutingForms_FormResponse.create({ + await prismaWriteService.prisma.app_RoutingForms_FormResponse.create({ data: { formId: routingForm.id, response: JSON.stringify({ question1: "answer1", question2: "answer2" }), diff --git a/apps/api/v2/src/modules/organizations/schedules/organizations-schedules.e2e-spec.ts b/apps/api/v2/src/modules/organizations/schedules/organizations-schedules.e2e-spec.ts index 7cb7b5e75b..3698972022 100644 --- a/apps/api/v2/src/modules/organizations/schedules/organizations-schedules.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/schedules/organizations-schedules.e2e-spec.ts @@ -10,13 +10,12 @@ import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; -import { TeamRepositoryFixture } from "test/fixtures/repository/team.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { +import type { CreateScheduleInput_2024_06_11, CreateScheduleOutput_2024_06_11, GetScheduleOutput_2024_06_11, @@ -26,7 +25,7 @@ import { UpdateScheduleInput_2024_06_11, UpdateScheduleOutput_2024_06_11, } from "@calcom/platform-types"; -import { User, Team, Membership, Profile } from "@calcom/prisma/client"; +import type { User, Team, Membership, Profile } from "@calcom/prisma/client"; describe("Organizations Schedules Endpoints", () => { describe("User lacks required role", () => { @@ -117,14 +116,11 @@ describe("Organizations Schedules Endpoints", () => { let profileRepositoryFixture: ProfileRepositoryFixture; const userEmail = `organizations-schedules-admin-${randomString()}@api.com`; - const userEmail2 = `organizations-schedules-member-${randomString()}@api.com`; + let user: User; - let user2: User; let org: Team; let membership: Membership; - let membership2: Membership; let profile: Profile; - let profile2: Profile; let createdSchedule: ScheduleOutput_2024_06_11; diff --git a/apps/api/v2/src/modules/organizations/stripe/services/organizations-stripe.service.ts b/apps/api/v2/src/modules/organizations/stripe/services/organizations-stripe.service.ts index a24f75188a..c416dec0a1 100644 --- a/apps/api/v2/src/modules/organizations/stripe/services/organizations-stripe.service.ts +++ b/apps/api/v2/src/modules/organizations/stripe/services/organizations-stripe.service.ts @@ -5,9 +5,9 @@ import { stripeInstance } from "@/modules/stripe/utils/newStripeInstance"; import { StripeData } from "@/modules/stripe/utils/stripeDataSchemas"; import { Logger, UnauthorizedException } from "@nestjs/common"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; import { ApiResponseWithoutData } from "@calcom/platform-types"; +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class OrganizationsStripeService { diff --git a/apps/api/v2/src/modules/organizations/teams/bookings/organizations-teams-bookings.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/bookings/organizations-teams-bookings.controller.e2e-spec.ts index bcb6e2e9cd..f88b9f0bf5 100644 --- a/apps/api/v2/src/modules/organizations/teams/bookings/organizations-teams-bookings.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/bookings/organizations-teams-bookings.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { OrganizationsTeamsBookingsModule } from "@/modules/organizations/teams/ import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -28,14 +27,14 @@ import { X_CAL_CLIENT_ID, X_CAL_SECRET_KEY, } from "@calcom/platform-constants"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, RecurringBookingOutput_2024_08_13, GetBookingsOutput_2024_08_13, GetSeatedBookingOutput_2024_08_13, } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Organizations TeamsBookings Endpoints 2024-08-13", () => { describe("Organization Team bookings", () => { diff --git a/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.e2e-spec.ts index 21072dae37..7eeb90810b 100644 --- a/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -19,8 +18,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS, X_CAL_CLIENT_ID, X_CAL_SECRET_KEY } from "@calcom/platform-constants"; -import { ApiSuccessResponse } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { ApiSuccessResponse } from "@calcom/platform-types"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Organizations Team Endpoints", () => { describe("User Authentication - User is Org Admin", () => { @@ -114,7 +113,9 @@ describe("Organizations Team Endpoints", () => { .then((response) => { const responseBody: ApiSuccessResponse = response.body; expect(responseBody.status).toEqual(SUCCESS_STATUS); - expect(responseBody.data[0].id).toEqual(team2.id); + console.log("WOOOW", responseBody.data); + expect([team2.id, team.id]).toContain(responseBody.data[0].id); + expect([team2.id]); }); }); diff --git a/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.ts b/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.ts index 1c4411eb31..9d8a1e2083 100644 --- a/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.ts +++ b/apps/api/v2/src/modules/organizations/teams/index/organizations-teams.controller.ts @@ -43,9 +43,8 @@ import { plainToClass } from "class-transformer"; import { Request } from "express"; import { SUCCESS_STATUS, X_CAL_CLIENT_ID } from "@calcom/platform-constants"; -import { OrgTeamOutputDto } from "@calcom/platform-types"; -import { SkipTakePagination } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import { OrgTeamOutputDto, type SkipTakePagination } from "@calcom/platform-types"; +import type { Team } from "@calcom/prisma/client"; @Controller({ path: "/v2/organizations/:orgId/teams", diff --git a/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships-guard.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships-guard.controller.e2e-spec.ts index 3fdd394058..b2c4b9a38c 100644 --- a/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships-guard.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships-guard.controller.e2e-spec.ts @@ -25,7 +25,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -38,6 +37,7 @@ import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; import { ApiSuccessResponse } from "@calcom/platform-types"; +import { PlatformOAuthClient, User } from "@calcom/prisma/client"; import { Team } from "@calcom/prisma/client"; describe("Organizations Teams Memberships Endpoints", () => { diff --git a/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships.controller.e2e-spec.ts index 4cfa31bfff..c2616685bf 100644 --- a/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/memberships/e2e/organizations-teams-memberships.controller.e2e-spec.ts @@ -9,7 +9,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { EventType, User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -21,8 +20,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { ApiSuccessResponse } from "@calcom/platform-types"; -import { Membership, Team } from "@calcom/prisma/client"; +import type { ApiSuccessResponse } from "@calcom/platform-types"; +import type { EventType, User, Membership, Team } from "@calcom/prisma/client"; describe("Organizations Teams Memberships Endpoints", () => { describe("User Authentication - User is Org Admin", () => { diff --git a/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms-responses.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms-responses.controller.e2e-spec.ts index 0a43113b24..97472cc782 100644 --- a/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms-responses.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms-responses.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -20,7 +19,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; describe("Organizations Teams Routing Forms Responses", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms.controller.e2e-spec.ts index ebed85f16b..877431a147 100644 --- a/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/routing-forms/controllers/organizations-teams-routing-forms.controller.e2e-spec.ts @@ -8,7 +8,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { App_RoutingForms_Form, Team, User } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -19,6 +18,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { App_RoutingForms_Form, Team, User } from "@calcom/prisma/client"; describe("OrganizationsRoutingFormsResponsesController", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/organizations/teams/routing-forms/services/organizations-teams-routing-forms-responses-output.service.ts b/apps/api/v2/src/modules/organizations/teams/routing-forms/services/organizations-teams-routing-forms-responses-output.service.ts index 87bfd32bfc..ac1f87cd64 100644 --- a/apps/api/v2/src/modules/organizations/teams/routing-forms/services/organizations-teams-routing-forms-responses-output.service.ts +++ b/apps/api/v2/src/modules/organizations/teams/routing-forms/services/organizations-teams-routing-forms-responses-output.service.ts @@ -2,7 +2,7 @@ import { Injectable } from "@nestjs/common"; import { plainToClass } from "class-transformer"; import { RoutingFormResponseOutput, RoutingFormResponseResponseOutput } from "@calcom/platform-types"; -import { App_RoutingForms_FormResponse } from "@calcom/prisma/client"; +import type { App_RoutingForms_FormResponse } from "@calcom/prisma/client"; @Injectable() export class OrganizationsTeamsRoutingFormsResponsesOutputService { diff --git a/apps/api/v2/src/modules/organizations/teams/schedules/organizations-teams-schedules.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/schedules/organizations-teams-schedules.e2e-spec.ts index 179f36c1bc..c2fe19aed6 100644 --- a/apps/api/v2/src/modules/organizations/teams/schedules/organizations-teams-schedules.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/schedules/organizations-teams-schedules.e2e-spec.ts @@ -6,7 +6,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; @@ -18,9 +17,12 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { GetSchedulesOutput_2024_06_11 } from "@calcom/platform-types"; -import { ApiSuccessResponse, ScheduleOutput_2024_06_11 } from "@calcom/platform-types"; -import { Team, Schedule } from "@calcom/prisma/client"; +import type { + GetSchedulesOutput_2024_06_11, + ApiSuccessResponse, + ScheduleOutput_2024_06_11, +} from "@calcom/platform-types"; +import type { User, Team, Schedule } from "@calcom/prisma/client"; describe("Organizations Teams Schedules Endpoints", () => { describe("User Authentication - User is Org Admin", () => { diff --git a/apps/api/v2/src/modules/organizations/teams/verified-resources/org-teams-verified-resources.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/verified-resources/org-teams-verified-resources.controller.e2e-spec.ts index 81729cb5e3..1f4513e19f 100644 --- a/apps/api/v2/src/modules/organizations/teams/verified-resources/org-teams-verified-resources.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/verified-resources/org-teams-verified-resources.controller.e2e-spec.ts @@ -17,7 +17,6 @@ import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; import { TOTP as TOTPtoMock } from "@otplib/core"; -import { User } from "@prisma/client"; import { totp } from "otplib"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; @@ -30,7 +29,7 @@ import { VerifiedResourcesRepositoryFixtures } from "test/fixtures/repository/ve import { randomString } from "test/utils/randomString"; import { AttendeeVerifyEmail } from "@calcom/platform-libraries/emails"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; jest.spyOn(totp, "generate").mockImplementation(function () { return "1234"; diff --git a/apps/api/v2/src/modules/organizations/teams/workflows/controllers/org-team-workflows.controller.e2e-spec.ts b/apps/api/v2/src/modules/organizations/teams/workflows/controllers/org-team-workflows.controller.e2e-spec.ts index 44b1af297b..12d8fcab50 100644 --- a/apps/api/v2/src/modules/organizations/teams/workflows/controllers/org-team-workflows.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/teams/workflows/controllers/org-team-workflows.controller.e2e-spec.ts @@ -23,7 +23,6 @@ import { GetWorkflowOutput, GetWorkflowsOutput } from "@/modules/workflows/outpu import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User, Team } from "@prisma/client"; import * as request from "supertest"; import { ApiKeysRepositoryFixture } from "test/fixtures/repository/api-keys.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -36,6 +35,7 @@ import { WorkflowRepositoryFixture } from "test/fixtures/repository/workflow.rep import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { User, Team } from "@calcom/prisma/client"; describe("OrganizationsTeamsWorkflowsController (E2E)", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/organizations/users/bookings/controllers/organizations-users-bookings.e2e-spec.ts b/apps/api/v2/src/modules/organizations/users/bookings/controllers/organizations-users-bookings.e2e-spec.ts index 4da8538a5a..36ba9554ff 100644 --- a/apps/api/v2/src/modules/organizations/users/bookings/controllers/organizations-users-bookings.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/users/bookings/controllers/organizations-users-bookings.e2e-spec.ts @@ -8,7 +8,6 @@ import { OrganizationsTeamsBookingsModule } from "@/modules/organizations/teams/ import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -23,7 +22,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_08_13 } from "@calcom/platform-constants"; -import { +import type { CreateBookingInput_2024_08_13, BookingOutput_2024_08_13, RecurringBookingOutput_2024_08_13, @@ -31,7 +30,7 @@ import { GetSeatedBookingOutput_2024_08_13, PaginationMetaDto, } from "@calcom/platform-types"; -import { PlatformOAuthClient, Team } from "@calcom/prisma/client"; +import type { User, PlatformOAuthClient, Team } from "@calcom/prisma/client"; describe("Organizations UsersBookings Endpoints 2024-08-13", () => { describe("Organization User bookings", () => { diff --git a/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.controller.ts b/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.controller.ts index cd24c897a2..7a3a219f7c 100644 --- a/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.controller.ts +++ b/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.controller.ts @@ -42,7 +42,7 @@ import { ApiHeader, ApiOperation, ApiTags as DocsTags } from "@nestjs/swagger"; import { plainToInstance } from "class-transformer"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { Team } from "@calcom/prisma/client"; +import type { Team } from "@calcom/prisma/client"; @Controller({ path: "/v2/organizations/:orgId/users", diff --git a/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.e2e-spec.ts b/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.e2e-spec.ts index 7d148c66a7..c65af6da3a 100644 --- a/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/users/index/controllers/organizations-users.e2e-spec.ts @@ -22,7 +22,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { User, Team, EventType, AttributeOption } from "@calcom/prisma/client"; +import type { User, Team, AttributeOption } from "@calcom/prisma/client"; describe("Organizations Users Endpoints", () => { const bio = "I am a bio"; @@ -414,7 +414,6 @@ describe("Organizations Users Endpoints", () => { let user: User; let org: Team; let team: Team; - let managedEventType: EventType; let createdUser: User; beforeAll(async () => { @@ -480,7 +479,7 @@ describe("Organizations Users Endpoints", () => { locations: [], }); - managedEventType = await eventTypesRepositoryFixture.createTeamEventType({ + await eventTypesRepositoryFixture.createTeamEventType({ schedulingType: "MANAGED", team: { connect: { id: team.id }, @@ -651,7 +650,6 @@ describe("Organizations Users Endpoints", () => { type: "TEXT", slug: `test-attribute-2-${randomString()}`, }); - const attributeId = attribute.id; assignedOption1 = await attributeRepositoryFixture.createOption({ slug: "option1", diff --git a/apps/api/v2/src/modules/organizations/users/index/organizations-users.repository.ts b/apps/api/v2/src/modules/organizations/users/index/organizations-users.repository.ts index b6b6595a30..4401d166e2 100644 --- a/apps/api/v2/src/modules/organizations/users/index/organizations-users.repository.ts +++ b/apps/api/v2/src/modules/organizations/users/index/organizations-users.repository.ts @@ -1,7 +1,7 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; -import type { Prisma } from "@prisma/client"; +import type { Prisma } from "@calcom/prisma/client"; @Injectable() export class OrganizationsUsersRepository { diff --git a/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts b/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts index 51b1b3553b..4b9b9c078c 100644 --- a/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts +++ b/apps/api/v2/src/modules/organizations/users/index/services/organizations-users-service.ts @@ -4,11 +4,10 @@ import { UpdateOrganizationUserInput } from "@/modules/organizations/users/index import { OrganizationsUsersRepository } from "@/modules/organizations/users/index/organizations-users.repository"; import { CreateUserInput } from "@/modules/users/inputs/create-user.input"; import { Injectable, ConflictException, ForbiddenException } from "@nestjs/common"; -import { Team } from "@prisma/client"; import { plainToInstance } from "class-transformer"; -import { createNewUsersConnectToOrgIfExists } from "@calcom/platform-libraries"; -import { CreationSource } from "@calcom/platform-libraries"; +import { createNewUsersConnectToOrgIfExists, CreationSource } from "@calcom/platform-libraries"; +import type { Team } from "@calcom/prisma/client"; @Injectable() export class OrganizationsUsersService { diff --git a/apps/api/v2/src/modules/organizations/users/ooo/controllers/organizations-users-ooo.e2e-spec.ts b/apps/api/v2/src/modules/organizations/users/ooo/controllers/organizations-users-ooo.e2e-spec.ts index 11314ef74b..d6d874fbd2 100644 --- a/apps/api/v2/src/modules/organizations/users/ooo/controllers/organizations-users-ooo.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/users/ooo/controllers/organizations-users-ooo.e2e-spec.ts @@ -7,7 +7,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; @@ -18,7 +17,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; describe("Organizations User OOO Endpoints", () => { describe("User Authentication - User is Org Admin", () => { diff --git a/apps/api/v2/src/modules/organizations/webhooks/controllers/organizations-webhooks.e2e-spec.ts b/apps/api/v2/src/modules/organizations/webhooks/controllers/organizations-webhooks.e2e-spec.ts index 2ac01a5780..55d0010f83 100644 --- a/apps/api/v2/src/modules/organizations/webhooks/controllers/organizations-webhooks.e2e-spec.ts +++ b/apps/api/v2/src/modules/organizations/webhooks/controllers/organizations-webhooks.e2e-spec.ts @@ -20,7 +20,7 @@ import { WebhookRepositoryFixture } from "test/fixtures/repository/webhooks.repo import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { Team, Webhook } from "@calcom/prisma/client"; +import type { Team, Webhook } from "@calcom/prisma/client"; describe("WebhooksController (e2e)", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/organizations/webhooks/organizations-webhooks.repository.ts b/apps/api/v2/src/modules/organizations/webhooks/organizations-webhooks.repository.ts index 1caec8fd69..ff929b9841 100644 --- a/apps/api/v2/src/modules/organizations/webhooks/organizations-webhooks.repository.ts +++ b/apps/api/v2/src/modules/organizations/webhooks/organizations-webhooks.repository.ts @@ -3,7 +3,7 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { v4 as uuidv4 } from "uuid"; -import { Webhook } from "@calcom/prisma/client"; +import type { Webhook } from "@calcom/prisma/client"; type WebhookInputData = Pick< Webhook, diff --git a/apps/api/v2/src/modules/prisma/prisma-read.service.ts b/apps/api/v2/src/modules/prisma/prisma-read.service.ts index a63d64fec3..e61b15149c 100644 --- a/apps/api/v2/src/modules/prisma/prisma-read.service.ts +++ b/apps/api/v2/src/modules/prisma/prisma-read.service.ts @@ -1,7 +1,8 @@ import type { OnModuleDestroy, OnModuleInit } from "@nestjs/common"; import { Injectable, Logger } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; -import { PrismaClient } from "@prisma/client"; + +import { PrismaClient } from "@calcom/prisma/client"; @Injectable() export class PrismaReadService implements OnModuleInit, OnModuleDestroy { diff --git a/apps/api/v2/src/modules/prisma/prisma-write.service.ts b/apps/api/v2/src/modules/prisma/prisma-write.service.ts index bd3bc6e3cd..986db859f8 100644 --- a/apps/api/v2/src/modules/prisma/prisma-write.service.ts +++ b/apps/api/v2/src/modules/prisma/prisma-write.service.ts @@ -1,7 +1,8 @@ import { OnModuleDestroy, OnModuleInit } from "@nestjs/common"; import { Injectable, Logger } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; -import { PrismaClient } from "@prisma/client"; + +import { PrismaClient } from "@calcom/prisma/client"; @Injectable() export class PrismaWriteService implements OnModuleInit, OnModuleDestroy { diff --git a/apps/api/v2/src/modules/routing-forms/controllers/routing-forms.e2e-spec.ts b/apps/api/v2/src/modules/routing-forms/controllers/routing-forms.e2e-spec.ts index 99dec1d2bb..31baa3a68e 100644 --- a/apps/api/v2/src/modules/routing-forms/controllers/routing-forms.e2e-spec.ts +++ b/apps/api/v2/src/modules/routing-forms/controllers/routing-forms.e2e-spec.ts @@ -13,7 +13,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { App_RoutingForms_Form, EventType, User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; @@ -23,7 +22,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { Team } from "@calcom/prisma/client"; +import type { App_RoutingForms_Form, EventType, User, Team } from "@calcom/prisma/client"; describe("Routing forms endpoints", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/selected-calendars/controllers/selected-calendars.controller.e2e-spec.ts b/apps/api/v2/src/modules/selected-calendars/controllers/selected-calendars.controller.e2e-spec.ts index bdbc561f34..b55614dbdf 100644 --- a/apps/api/v2/src/modules/selected-calendars/controllers/selected-calendars.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/selected-calendars/controllers/selected-calendars.controller.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { PlatformOAuthClient, Team, User, Credential } from "@prisma/client"; import * as request from "supertest"; import { CredentialsRepositoryFixture } from "test/fixtures/repository/credentials.repository.fixture"; import { OAuthClientRepositoryFixture } from "test/fixtures/repository/oauth-client.repository.fixture"; @@ -19,8 +18,8 @@ import { TokensRepositoryFixture } from "test/fixtures/repository/tokens.reposit import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { CalendarsServiceMock } from "test/mocks/calendars-service-mock"; -import { APPLE_CALENDAR_TYPE, APPLE_CALENDAR_ID } from "@calcom/platform-constants"; -import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import { APPLE_CALENDAR_TYPE, APPLE_CALENDAR_ID, SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { PlatformOAuthClient, Team, User, Credential } from "@calcom/prisma/client"; const CLIENT_REDIRECT_URI = "http://localhost:5555"; diff --git a/apps/api/v2/src/modules/slots/slots-2024-04-15/controllers/slots.controller.e2e-spec.ts b/apps/api/v2/src/modules/slots/slots-2024-04-15/controllers/slots.controller.e2e-spec.ts index 028a0461f4..7dc12b7b5b 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-04-15/controllers/slots.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-04-15/controllers/slots.controller.e2e-spec.ts @@ -10,7 +10,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { AttendeeRepositoryFixture } from "test/fixtures/repository/attendee.repository.fixture"; import { BookingSeatRepositoryFixture } from "test/fixtures/repository/booking-seat.repository.fixture"; @@ -22,6 +21,7 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { User } from "@calcom/prisma/client"; const expectedSlotsUTC = { slots: { @@ -262,7 +262,6 @@ describe("Slots 2024-04-15 Endpoints", () => { let eventTypeSlug: string; let reservedSlotUid: string; - const seatedEventTypeSlug = "peer-coding-seated"; let seatedEventTypeId: number; beforeAll(async () => { diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/dynamic-event-type-slots.controller.e2e-spec.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/dynamic-event-type-slots.controller.e2e-spec.ts index 020c249b85..abc0bbbdca 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/dynamic-event-type-slots.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/dynamic-event-type-slots.controller.e2e-spec.ts @@ -15,7 +15,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { Profile, User } from "@prisma/client"; import * as request from "supertest"; import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; @@ -24,8 +23,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_09_04 } from "@calcom/platform-constants"; -import { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import type { Profile, User, Team } from "@calcom/prisma/client"; describe("Slots 2024-09-04 Endpoints", () => { describe("Dynamic event type slots", () => { diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/org-team-event-type-slots.controller.e2e-spec.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/org-team-event-type-slots.controller.e2e-spec.ts index f3f66ef680..2a1608c796 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/org-team-event-type-slots.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/org-team-event-type-slots.controller.e2e-spec.ts @@ -12,7 +12,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -25,8 +24,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_09_04 } from "@calcom/platform-constants"; -import { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import type { User, Team } from "@calcom/prisma/client"; describe("Slots 2024-09-04 Endpoints", () => { describe("Organization team event type slots", () => { diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/reschedule-uid-slots.controller.e2e-spec.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/reschedule-uid-slots.controller.e2e-spec.ts index d10a4a8506..b90a3b9d3e 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/reschedule-uid-slots.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/reschedule-uid-slots.controller.e2e-spec.ts @@ -15,7 +15,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User, Booking } from "@prisma/client"; import * as request from "supertest"; import { BookingsRepositoryFixture } from "test/fixtures/repository/bookings.repository.fixture"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; @@ -23,7 +22,8 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_09_04 } from "@calcom/platform-constants"; -import { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import type { CreateScheduleInput_2024_06_11 } from "@calcom/platform-types"; +import type { User, Booking } from "@calcom/prisma/client"; describe("Slots 2024-09-04 Endpoints", () => { describe("rescheduleUid functionality", () => { diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/team-event-type-slots.controller.e2e-spec.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/team-event-type-slots.controller.e2e-spec.ts index a2db140ad4..27c4e0b4e7 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/team-event-type-slots.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/team-event-type-slots.controller.e2e-spec.ts @@ -13,7 +13,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import { advanceTo, clear } from "jest-date-mock"; import { DateTime } from "luxon"; import * as request from "supertest"; @@ -27,11 +26,11 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_09_04 } from "@calcom/platform-constants"; -import { +import type { CreateScheduleInput_2024_06_11, ReserveSlotOutput_2024_09_04 as ReserveSlotOutputData_2024_09_04, } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; describe("Slots 2024-09-04 Endpoints", () => { describe("Team event type slots", () => { diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/user-event-type-slots.controller.e2e-spec.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/user-event-type-slots.controller.e2e-spec.ts index 1fe42764d2..dd03812cf3 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/user-event-type-slots.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/controllers/e2e/user-event-type-slots.controller.e2e-spec.ts @@ -19,7 +19,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { EventType, User } from "@prisma/client"; import { advanceTo, clear } from "jest-date-mock"; import { DateTime } from "luxon"; import * as request from "supertest"; @@ -36,11 +35,11 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { CAL_API_VERSION_HEADER, SUCCESS_STATUS, VERSION_2024_09_04 } from "@calcom/platform-constants"; -import { +import type { CreateScheduleInput_2024_06_11, ReserveSlotOutput_2024_09_04 as ReserveSlotOutputData_2024_09_04, } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { EventType, User, Team } from "@calcom/prisma/client"; describe("Slots 2024-09-04 Endpoints", () => { describe("User event type slots", () => { @@ -77,7 +76,6 @@ describe("Slots 2024-09-04 Endpoints", () => { const seatedEventTypeSlug = `slots-2024-09-04-seated-event-type-${randomString()}`; let seatedEventType: EventType; - const variableLengthEventTypeSlug = `slots-2024-09-04-variable-length-event-type-${randomString()}`; let variableLengthEventType: EventType; let reservedSlot: ReserveSlotOutputData_2024_09_04; @@ -502,7 +500,8 @@ describe("Slots 2024-09-04 Endpoints", () => { const reserveResponseBody: GetReservedSlotOutput_2024_09_04 = reserveResponse.body; expect(reserveResponseBody.status).toEqual(SUCCESS_STATUS); - const { reservationDuration, ...rest } = reservedSlot; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { reservationDuration: _1, ...rest } = reservedSlot; expect(reserveResponseBody.data).toEqual(rest); }); diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots-output.service.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots-output.service.ts index cf0fdbb500..70f6378725 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots-output.service.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots-output.service.ts @@ -3,7 +3,7 @@ import { Injectable, BadRequestException } from "@nestjs/common"; import { DateTime } from "luxon"; import { SlotFormat } from "@calcom/platform-enums"; -import { +import type { GetReservedSlotOutput_2024_09_04, RangeSlot_2024_09_04, RangeSlotsOutput_2024_09_04, @@ -13,7 +13,7 @@ import { Slot_2024_09_04, SlotsOutput_2024_09_04, } from "@calcom/platform-types"; -import { SelectedSlots } from "@calcom/prisma/client"; +import type { SelectedSlots } from "@calcom/prisma/client"; type GetAvailableSlots = { slots: Record; diff --git a/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots.service.ts b/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots.service.ts index 190c9d73bc..6e34882a19 100644 --- a/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots.service.ts +++ b/apps/api/v2/src/modules/slots/slots-2024-09-04/services/slots.service.ts @@ -23,12 +23,12 @@ import { DateTime } from "luxon"; import { z } from "zod"; import { SlotFormat } from "@calcom/platform-enums"; -import { +import type { GetSlotsInput_2024_09_04, GetSlotsInputWithRouting_2024_09_04, ReserveSlotInput_2024_09_04, } from "@calcom/platform-types"; -import { EventType } from "@calcom/prisma/client"; +import type { EventType } from "@calcom/prisma/client"; const eventTypeMetadataSchema = z .object({ diff --git a/apps/api/v2/src/modules/stripe/stripe.service.ts b/apps/api/v2/src/modules/stripe/stripe.service.ts index c1f95ab3a9..a562665def 100644 --- a/apps/api/v2/src/modules/stripe/stripe.service.ts +++ b/apps/api/v2/src/modules/stripe/stripe.service.ts @@ -13,11 +13,11 @@ import { InternalServerErrorException, } from "@nestjs/common"; import { ConfigService } from "@nestjs/config"; -import type { Prisma, Credential, User } from "@prisma/client"; import Stripe from "stripe"; import { z } from "zod"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import type { Prisma, Credential, User } from "@calcom/prisma/client"; import { stripeKeysResponseSchema } from "./utils/stripeDataSchemas"; diff --git a/apps/api/v2/src/modules/teams/event-types/controllers/teams-event-types.controller.e2e-spec.ts b/apps/api/v2/src/modules/teams/event-types/controllers/teams-event-types.controller.e2e-spec.ts index 6662bff7c3..ba2ffb0fa7 100644 --- a/apps/api/v2/src/modules/teams/event-types/controllers/teams-event-types.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/teams/event-types/controllers/teams-event-types.controller.e2e-spec.ts @@ -6,12 +6,9 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; -import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; -import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; import { TeamRepositoryFixture } from "test/fixtures/repository/team.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { randomString } from "test/utils/randomString"; @@ -24,7 +21,7 @@ import { ConfirmationPolicyEnum, NoticeThresholdUnitEnum, } from "@calcom/platform-enums"; -import { +import type { ApiSuccessResponse, CreateTeamEventTypeInput_2024_06_14, EventTypeOutput_2024_06_14, @@ -32,17 +29,15 @@ import { TeamEventTypeOutput_2024_06_14, UpdateTeamEventTypeInput_2024_06_14, } from "@calcom/platform-types"; -import { Team } from "@calcom/prisma/client"; +import type { User, Team } from "@calcom/prisma/client"; describe("Organizations Event Types Endpoints", () => { describe("User Authentication - User is Org Admin", () => { let app: INestApplication; let userRepositoryFixture: UserRepositoryFixture; - let organizationsRepositoryFixture: OrganizationRepositoryFixture; let teamsRepositoryFixture: TeamRepositoryFixture; let membershipsRepositoryFixture: MembershipRepositoryFixture; - let profileRepositoryFixture: ProfileRepositoryFixture; let eventTypesRepositoryFixture: EventTypesRepositoryFixture; let team: Team; @@ -112,10 +107,8 @@ describe("Organizations Event Types Endpoints", () => { ).compile(); userRepositoryFixture = new UserRepositoryFixture(moduleRef); - organizationsRepositoryFixture = new OrganizationRepositoryFixture(moduleRef); teamsRepositoryFixture = new TeamRepositoryFixture(moduleRef); membershipsRepositoryFixture = new MembershipRepositoryFixture(moduleRef); - profileRepositoryFixture = new ProfileRepositoryFixture(moduleRef); eventTypesRepositoryFixture = new EventTypesRepositoryFixture(moduleRef); userAdmin = await userRepositoryFixture.create({ diff --git a/apps/api/v2/src/modules/teams/memberships/controllers/teams-memberships.controller.e2e-spec.ts b/apps/api/v2/src/modules/teams/memberships/controllers/teams-memberships.controller.e2e-spec.ts index d8291169c5..5b17acbc7a 100644 --- a/apps/api/v2/src/modules/teams/memberships/controllers/teams-memberships.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/teams/memberships/controllers/teams-memberships.controller.e2e-spec.ts @@ -13,21 +13,18 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { EventType, User } from "@prisma/client"; import * as request from "supertest"; import { EventTypesRepositoryFixture } from "test/fixtures/repository/event-types.repository.fixture"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; -import { OrganizationRepositoryFixture } from "test/fixtures/repository/organization.repository.fixture"; import { ProfileRepositoryFixture } from "test/fixtures/repository/profiles.repository.fixture"; import { TeamRepositoryFixture } from "test/fixtures/repository/team.repository.fixture"; import { UserRepositoryFixture } from "test/fixtures/repository/users.repository.fixture"; import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { api } from "@calcom/app-store/alby"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { ApiSuccessResponse } from "@calcom/platform-types"; -import { Membership, Team } from "@calcom/prisma/client"; +import type { ApiSuccessResponse } from "@calcom/platform-types"; +import type { EventType, User, Membership, Team } from "@calcom/prisma/client"; describe("Teams Memberships Endpoints", () => { describe("User Authentication - User is Team Admin", () => { @@ -35,7 +32,6 @@ describe("Teams Memberships Endpoints", () => { let eventTypesRepositoryFixture: EventTypesRepositoryFixture; let userRepositoryFixture: UserRepositoryFixture; - let organizationsRepositoryFixture: OrganizationRepositoryFixture; let teamsRepositoryFixture: TeamRepositoryFixture; let profileRepositoryFixture: ProfileRepositoryFixture; @@ -74,7 +70,6 @@ describe("Teams Memberships Endpoints", () => { ).compile(); userRepositoryFixture = new UserRepositoryFixture(moduleRef); - organizationsRepositoryFixture = new OrganizationRepositoryFixture(moduleRef); teamsRepositoryFixture = new TeamRepositoryFixture(moduleRef); profileRepositoryFixture = new ProfileRepositoryFixture(moduleRef); diff --git a/apps/api/v2/src/modules/teams/schedules/controllers/teams-schedules.e2e-spec.ts b/apps/api/v2/src/modules/teams/schedules/controllers/teams-schedules.e2e-spec.ts index 1306352382..52de4034d3 100644 --- a/apps/api/v2/src/modules/teams/schedules/controllers/teams-schedules.e2e-spec.ts +++ b/apps/api/v2/src/modules/teams/schedules/controllers/teams-schedules.e2e-spec.ts @@ -6,7 +6,6 @@ import { UsersModule } from "@/modules/users/users.module"; import { INestApplication } from "@nestjs/common"; import { NestExpressApplication } from "@nestjs/platform-express"; import { Test } from "@nestjs/testing"; -import { User } from "@prisma/client"; import * as request from "supertest"; import { MembershipRepositoryFixture } from "test/fixtures/repository/membership.repository.fixture"; import { SchedulesRepositoryFixture } from "test/fixtures/repository/schedules.repository.fixture"; @@ -16,8 +15,8 @@ import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; -import { GetSchedulesOutput_2024_06_11 } from "@calcom/platform-types"; -import { Team, Schedule } from "@calcom/prisma/client"; +import type { GetSchedulesOutput_2024_06_11 } from "@calcom/platform-types"; +import type { User, Team, Schedule } from "@calcom/prisma/client"; describe("Teams Schedules Endpoints", () => { describe("User Authentication - User is Team Admin", () => { diff --git a/apps/api/v2/src/modules/tokens/tokens.repository.ts b/apps/api/v2/src/modules/tokens/tokens.repository.ts index 2442c117e7..c8e5a1bb3d 100644 --- a/apps/api/v2/src/modules/tokens/tokens.repository.ts +++ b/apps/api/v2/src/modules/tokens/tokens.repository.ts @@ -3,10 +3,11 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { Injectable } from "@nestjs/common"; import { Logger } from "@nestjs/common"; -import { PlatformAuthorizationToken } from "@prisma/client"; import { DateTime } from "luxon"; import { v4 as uuidv4 } from "uuid"; +import type { PlatformAuthorizationToken } from "@calcom/prisma/client"; + @Injectable() export class TokensRepository { private readonly logger = new Logger("TokensRepository"); @@ -94,7 +95,7 @@ export class TokensRepository { async forceRefreshOAuthTokens(clientId: string, ownerId: number) { const accessExpiry = DateTime.now().plus({ minute: 60 }).startOf("minute").toJSDate(); const refreshExpiry = DateTime.now().plus({ year: 1 }).startOf("day").toJSDate(); - + // eslint-disable-next-line @typescript-eslint/no-unused-vars const [_deletedAccessToken, _deletedRefreshToken, accessToken, refreshToken] = await this.dbWrite.prisma.$transaction([ this.dbWrite.prisma.accessToken.deleteMany({ diff --git a/apps/api/v2/src/modules/users/services/users.service.ts b/apps/api/v2/src/modules/users/services/users.service.ts index e10845e20b..e66e2ff281 100644 --- a/apps/api/v2/src/modules/users/services/users.service.ts +++ b/apps/api/v2/src/modules/users/services/users.service.ts @@ -1,7 +1,7 @@ import { UsersRepository, UserWithProfile } from "@/modules/users/users.repository"; import { Injectable } from "@nestjs/common"; -import { User } from "@calcom/prisma/client"; +import type { User } from "@calcom/prisma/client"; @Injectable() export class UsersService { diff --git a/apps/api/v2/src/modules/users/users.repository.ts b/apps/api/v2/src/modules/users/users.repository.ts index 0d90a49ce1..aba04737de 100644 --- a/apps/api/v2/src/modules/users/users.repository.ts +++ b/apps/api/v2/src/modules/users/users.repository.ts @@ -3,9 +3,9 @@ import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { CreateManagedUserInput } from "@/modules/users/inputs/create-managed-user.input"; import { UpdateManagedUserInput } from "@/modules/users/inputs/update-managed-user.input"; import { Injectable, NotFoundException } from "@nestjs/common"; -import type { Profile, User, Team, Prisma } from "@prisma/client"; import { CreationSource } from "@calcom/platform-libraries"; +import type { Profile, User, Team, Prisma } from "@calcom/prisma/client"; export type UserWithProfile = User & { movedToProfile?: (Profile & { organization: Pick }) | null; diff --git a/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.e2e-spec.ts b/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.e2e-spec.ts index 43c70152d1..4abd65b33a 100644 --- a/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.e2e-spec.ts @@ -18,7 +18,7 @@ import { WebhookRepositoryFixture } from "test/fixtures/repository/webhooks.repo import { randomString } from "test/utils/randomString"; import { withApiAuth } from "test/utils/withApiAuth"; -import { Webhook } from "@calcom/prisma/client"; +import type { Webhook } from "@calcom/prisma/client"; describe("WebhooksController (e2e)", () => { let app: INestApplication; diff --git a/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.ts b/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.ts index 9dca139f79..483bc559b4 100644 --- a/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.ts +++ b/apps/api/v2/src/modules/webhooks/controllers/webhooks.controller.ts @@ -17,11 +17,11 @@ import { UserWebhooksService } from "@/modules/webhooks/services/user-webhooks.s import { WebhooksService } from "@/modules/webhooks/services/webhooks.service"; import { Controller, Post, Body, UseGuards, Get, Param, Query, Delete, Patch } from "@nestjs/common"; import { ApiHeader, ApiOperation, ApiTags as DocsTags } from "@nestjs/swagger"; -import { Webhook } from "@prisma/client"; import { plainToClass } from "class-transformer"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; import { SkipTakePagination } from "@calcom/platform-types"; +import type { Webhook } from "@calcom/prisma/client"; @Controller({ path: "/v2/webhooks", diff --git a/apps/api/v2/src/modules/webhooks/decorators/get-webhook-decorator.ts b/apps/api/v2/src/modules/webhooks/decorators/get-webhook-decorator.ts index df98ac107c..9cfed3bd6b 100644 --- a/apps/api/v2/src/modules/webhooks/decorators/get-webhook-decorator.ts +++ b/apps/api/v2/src/modules/webhooks/decorators/get-webhook-decorator.ts @@ -1,7 +1,7 @@ import { ExecutionContext } from "@nestjs/common"; import { createParamDecorator } from "@nestjs/common"; -import { Webhook } from "@calcom/prisma/client"; +import type { Webhook } from "@calcom/prisma/client"; export type GetWebhookReturnType = Webhook; diff --git a/apps/api/v2/src/modules/webhooks/guards/is-oauth-client-webhook-guard.ts b/apps/api/v2/src/modules/webhooks/guards/is-oauth-client-webhook-guard.ts index 8cd8586b2a..923567096e 100644 --- a/apps/api/v2/src/modules/webhooks/guards/is-oauth-client-webhook-guard.ts +++ b/apps/api/v2/src/modules/webhooks/guards/is-oauth-client-webhook-guard.ts @@ -12,7 +12,7 @@ import { } from "@nestjs/common"; import { Request } from "express"; -import { PlatformOAuthClient, Webhook } from "@calcom/prisma/client"; +import type { PlatformOAuthClient, Webhook } from "@calcom/prisma/client"; @Injectable() export class IsOAuthClientWebhookGuard implements CanActivate { diff --git a/apps/api/v2/src/modules/webhooks/guards/is-user-event-type-webhook-guard.ts b/apps/api/v2/src/modules/webhooks/guards/is-user-event-type-webhook-guard.ts index ad28a42503..840e15855e 100644 --- a/apps/api/v2/src/modules/webhooks/guards/is-user-event-type-webhook-guard.ts +++ b/apps/api/v2/src/modules/webhooks/guards/is-user-event-type-webhook-guard.ts @@ -9,9 +9,10 @@ import { Injectable, NotFoundException, } from "@nestjs/common"; -import { EventType, Webhook } from "@prisma/client"; import { Request } from "express"; +import type { EventType, Webhook } from "@calcom/prisma/client"; + @Injectable() export class IsUserEventTypeWebhookGuard implements CanActivate { constructor( diff --git a/apps/api/v2/src/modules/webhooks/guards/is-user-webhook-guard.ts b/apps/api/v2/src/modules/webhooks/guards/is-user-webhook-guard.ts index ef2c253abe..2235ea0a98 100644 --- a/apps/api/v2/src/modules/webhooks/guards/is-user-webhook-guard.ts +++ b/apps/api/v2/src/modules/webhooks/guards/is-user-webhook-guard.ts @@ -3,7 +3,7 @@ import { WebhooksService } from "@/modules/webhooks/services/webhooks.service"; import { CanActivate, ExecutionContext, ForbiddenException, Injectable } from "@nestjs/common"; import { Request } from "express"; -import { Webhook } from "@calcom/prisma/client"; +import type { Webhook } from "@calcom/prisma/client"; @Injectable() export class IsUserWebhookGuard implements CanActivate { diff --git a/apps/api/v2/src/modules/webhooks/pipes/WebhookOutputPipe.ts b/apps/api/v2/src/modules/webhooks/pipes/WebhookOutputPipe.ts index b3272cd470..d23bddba8e 100644 --- a/apps/api/v2/src/modules/webhooks/pipes/WebhookOutputPipe.ts +++ b/apps/api/v2/src/modules/webhooks/pipes/WebhookOutputPipe.ts @@ -1,5 +1,6 @@ import { PipeTransform, Injectable } from "@nestjs/common"; -import { Webhook } from "@prisma/client"; + +import type { Webhook } from "@calcom/prisma/client"; @Injectable() export class WebhookOutputPipe implements PipeTransform { diff --git a/apps/api/v2/src/modules/webhooks/webhooks.repository.ts b/apps/api/v2/src/modules/webhooks/webhooks.repository.ts index bac197ae6e..d59ad1bfdf 100644 --- a/apps/api/v2/src/modules/webhooks/webhooks.repository.ts +++ b/apps/api/v2/src/modules/webhooks/webhooks.repository.ts @@ -2,7 +2,7 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { Injectable } from "@nestjs/common"; import { v4 as uuidv4 } from "uuid"; -import { Webhook } from "@calcom/prisma/client"; +import type { Webhook } from "@calcom/prisma/client"; import { PrismaWriteService } from "../prisma/prisma-write.service"; diff --git a/apps/api/v2/src/modules/workflows/workflows.repository.ts b/apps/api/v2/src/modules/workflows/workflows.repository.ts index 314571c187..e06066a5ba 100644 --- a/apps/api/v2/src/modules/workflows/workflows.repository.ts +++ b/apps/api/v2/src/modules/workflows/workflows.repository.ts @@ -6,7 +6,7 @@ import { Injectable } from "@nestjs/common"; import { TimeUnit, WorkflowTriggerEvents } from "@calcom/platform-libraries"; import { TUpdateInputSchema } from "@calcom/platform-libraries/workflows"; import { updateWorkflow } from "@calcom/platform-libraries/workflows"; -import { PrismaClient } from "@calcom/prisma"; +import type { PrismaClient } from "@calcom/prisma"; import type { Workflow, WorkflowStep } from "@calcom/prisma/client"; export type WorkflowType = Workflow & { activeOn: { eventTypeId: number }[]; steps: WorkflowStep[] }; diff --git a/apps/api/v2/swagger/documentation.json b/apps/api/v2/swagger/documentation.json index 4b5028f1f0..2a5a864426 100644 --- a/apps/api/v2/swagger/documentation.json +++ b/apps/api/v2/swagger/documentation.json @@ -28,8 +28,8 @@ "required": false, "in": "query", "description": "The number of items to return", - "example": 10, "schema": { + "example": 10, "type": "number" } }, @@ -38,8 +38,8 @@ "required": false, "in": "query", "description": "The number of items to skip", - "example": 0, "schema": { + "example": 0, "type": "number" } }, @@ -48,8 +48,8 @@ "required": false, "in": "query", "description": "Filter managed users by email. If you want to filter by multiple emails, separate them with a comma.", - "example": "?emails=email1@example.com,email2@example.com", "schema": { + "example": "?emails=email1@example.com,email2@example.com", "type": "array", "items": { "type": "string" @@ -447,11 +447,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -460,10 +460,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -660,11 +660,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -673,10 +673,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -1173,8 +1173,8 @@ "required": false, "in": "query", "description": "Filter by assigned attribute option ids. ids must be separated by a comma.", - "example": "?assignedOptionIds=aaaaaaaa-bbbb-cccc-dddd-eeeeee1eee,aaaaaaaa-bbbb-cccc-dddd-eeeeee2eee", "schema": { + "example": "?assignedOptionIds=aaaaaaaa-bbbb-cccc-dddd-eeeeee1eee,aaaaaaaa-bbbb-cccc-dddd-eeeeee2eee", "type": "array", "items": { "type": "string" @@ -1186,8 +1186,8 @@ "required": false, "in": "query", "description": "Filter by teamIds. Team ids must be separated by a comma.", - "example": "?teamIds=100,200", "schema": { + "example": "?teamIds=100,200", "type": "array", "items": { "type": "number" @@ -1265,8 +1265,8 @@ "required": false, "in": "query", "description": "Filter by assigned attribute option ids. ids must be separated by a comma.", - "example": "?assignedOptionIds=aaaaaaaa-bbbb-cccc-dddd-eeeeee1eee,aaaaaaaa-bbbb-cccc-dddd-eeeeee2eee", "schema": { + "example": "?assignedOptionIds=aaaaaaaa-bbbb-cccc-dddd-eeeeee1eee,aaaaaaaa-bbbb-cccc-dddd-eeeeee2eee", "type": "array", "items": { "type": "string" @@ -1278,8 +1278,8 @@ "required": false, "in": "query", "description": "Filter by teamIds. Team ids must be separated by a comma.", - "example": "?teamIds=100,200", "schema": { + "example": "?teamIds=100,200", "type": "array", "items": { "type": "number" @@ -1501,8 +1501,8 @@ "required": false, "in": "query", "description": "Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.", - "example": "?status=upcoming,past", "schema": { + "example": "?status=upcoming,past", "type": "array", "items": { "type": "string", @@ -1521,8 +1521,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's email address.", - "example": "example@domain.com", "schema": { + "example": "example@domain.com", "type": "string" } }, @@ -1531,8 +1531,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's name.", - "example": "John Doe", "schema": { + "example": "John Doe", "type": "string" } }, @@ -1541,8 +1541,8 @@ "required": false, "in": "query", "description": "Filter bookings by the booking Uid.", - "example": "2NtaeaVcKfpmSZ4CthFdfk", "schema": { + "example": "2NtaeaVcKfpmSZ4CthFdfk", "type": "string" } }, @@ -1551,8 +1551,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type ids belonging to the user. Event type ids must be separated by a comma.", - "example": "?eventTypeIds=100,200", "schema": { + "example": "?eventTypeIds=100,200", "type": "string" } }, @@ -1561,8 +1561,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type id belonging to the user.", - "example": "?eventTypeId=100", "schema": { + "example": "?eventTypeId=100", "type": "string" } }, @@ -1571,8 +1571,8 @@ "required": false, "in": "query", "description": "Filter bookings by team ids that user is part of. Team ids must be separated by a comma.", - "example": "?teamIds=50,60", "schema": { + "example": "?teamIds=50,60", "type": "string" } }, @@ -1581,8 +1581,8 @@ "required": false, "in": "query", "description": "Filter bookings by team id that user is part of", - "example": "?teamId=50", "schema": { + "example": "?teamId=50", "type": "string" } }, @@ -1591,8 +1591,8 @@ "required": false, "in": "query", "description": "Filter bookings with start after this date string.", - "example": "?afterStart=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterStart=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -1601,8 +1601,8 @@ "required": false, "in": "query", "description": "Filter bookings with end before this date string.", - "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "schema": { + "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "type": "string" } }, @@ -1611,8 +1611,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been created after this date string.", - "example": "?afterCreatedAt=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterCreatedAt=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -1621,8 +1621,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been created before this date string.", - "example": "?beforeCreatedAt=2025-03-14T11:00:00.000Z", "schema": { + "example": "?beforeCreatedAt=2025-03-14T11:00:00.000Z", "type": "string" } }, @@ -1631,8 +1631,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been updated after this date string.", - "example": "?afterUpdatedAt=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterUpdatedAt=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -1641,8 +1641,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been updated before this date string.", - "example": "?beforeUpdatedAt=2025-03-14T11:00:00.000Z", "schema": { + "example": "?beforeUpdatedAt=2025-03-14T11:00:00.000Z", "type": "string" } }, @@ -1651,8 +1651,8 @@ "required": false, "in": "query", "description": "Sort results by their start time in ascending or descending order.", - "example": "?sortStart=asc OR ?sortStart=desc", "schema": { + "example": "?sortStart=asc OR ?sortStart=desc", "enum": [ "asc", "desc" @@ -1665,8 +1665,8 @@ "required": false, "in": "query", "description": "Sort results by their end time in ascending or descending order.", - "example": "?sortEnd=asc OR ?sortEnd=desc", "schema": { + "example": "?sortEnd=asc OR ?sortEnd=desc", "enum": [ "asc", "desc" @@ -1679,8 +1679,8 @@ "required": false, "in": "query", "description": "Sort results by their creation time (when booking was made) in ascending or descending order.", - "example": "?sortCreated=asc OR ?sortCreated=desc", "schema": { + "example": "?sortCreated=asc OR ?sortCreated=desc", "enum": [ "asc", "desc" @@ -1693,8 +1693,8 @@ "required": false, "in": "query", "description": "Sort results by their updated time (for example when booking status changes) in ascending or descending order.", - "example": "?sortUpdated=asc OR ?sortUpdated=desc", "schema": { + "example": "?sortUpdated=asc OR ?sortUpdated=desc", "enum": [ "asc", "desc" @@ -1707,9 +1707,9 @@ "required": false, "in": "query", "description": "The number of items to return", - "example": 10, "schema": { "default": 100, + "example": 10, "type": "number" } }, @@ -1718,9 +1718,9 @@ "required": false, "in": "query", "description": "The number of items to skip", - "example": 0, "schema": { "default": 0, + "example": 0, "type": "number" } }, @@ -1729,8 +1729,8 @@ "required": false, "in": "query", "description": "Filter bookings by ids of users within your organization.", - "example": "?userIds=100,200", "schema": { + "example": "?userIds=100,200", "type": "string" } }, @@ -1806,7 +1806,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateDelegationCredentialInput" + "$ref": "#/components/schemas/Function" } } } @@ -1949,11 +1949,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -1962,10 +1962,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -2377,8 +2377,8 @@ "required": false, "in": "query", "description": "Filter by teamIds. Team ids must be separated by a comma.", - "example": "?teamIds=100,200", "schema": { + "example": "?teamIds=100,200", "type": "array", "items": { "type": "number" @@ -2577,8 +2577,8 @@ "required": true, "in": "query", "description": "\n Time starting from which available slots should be checked.\n \n Must be in UTC timezone as ISO 8601 datestring.\n \n You can pass date without hours which defaults to start of day or specify hours:\n 2024-08-13 (will have hours 00:00:00 aka at very beginning of the date) or you can specify hours manually like 2024-08-13T09:00:00Z\n ", - "example": "2050-09-05", "schema": { + "example": "2050-09-05", "type": "string" } }, @@ -2587,8 +2587,8 @@ "required": true, "in": "query", "description": "\n Time until which available slots should be checked.\n \n Must be in UTC timezone as ISO 8601 datestring.\n \n You can pass date without hours which defaults to end of day or specify hours:\n 2024-08-20 (will have hours 23:59:59 aka at the very end of the date) or you can specify hours manually like 2024-08-20T18:00:00Z", - "example": "2050-09-06", "schema": { + "example": "2050-09-06", "type": "string" } }, @@ -2597,8 +2597,8 @@ "required": false, "in": "query", "description": "Time zone in which the available slots should be returned. Defaults to UTC.", - "example": "Europe/Rome", "schema": { + "example": "Europe/Rome", "type": "string" } }, @@ -2607,8 +2607,8 @@ "required": false, "in": "query", "description": "If event type has multiple possible durations then you can specify the desired duration here. Also, if you are fetching slots for a dynamic event then you can specify the duration her which defaults to 30, meaning that returned slots will be each 30 minutes long.", - "example": "60", "schema": { + "example": "60", "type": "number" } }, @@ -2617,8 +2617,8 @@ "required": false, "in": "query", "description": "Format of slot times in response. Use 'range' to get start and end times.", - "example": "range", "schema": { + "example": "range", "enum": [ "range", "time" @@ -2631,8 +2631,8 @@ "required": false, "in": "query", "description": "The unique identifier of the booking being rescheduled. When provided will ensure that the original booking time appears within the returned available slots when rescheduling.", - "example": "abc123def456", "schema": { + "example": "abc123def456", "type": "string" } }, @@ -2641,8 +2641,8 @@ "required": false, "in": "query", "description": "Whether to queue the form response.", - "example": true, "schema": { + "example": true, "type": "boolean" } } @@ -2775,11 +2775,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -2788,10 +2788,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -2852,31 +2852,6 @@ "schema": { "type": "number" } - }, - { - "name": "take", - "required": false, - "in": "query", - "description": "Maximum number of items to return", - "example": 25, - "schema": { - "minimum": 1, - "maximum": 250, - "default": 250, - "type": "number" - } - }, - { - "name": "skip", - "required": false, - "in": "query", - "description": "Number of items to skip", - "example": 0, - "schema": { - "minimum": 0, - "default": 0, - "type": "number" - } } ], "responses": { @@ -3001,31 +2976,6 @@ "schema": { "type": "number" } - }, - { - "name": "take", - "required": false, - "in": "query", - "description": "Maximum number of items to return", - "example": 25, - "schema": { - "minimum": 1, - "maximum": 250, - "default": 250, - "type": "number" - } - }, - { - "name": "skip", - "required": false, - "in": "query", - "description": "Number of items to skip", - "example": 0, - "schema": { - "minimum": 0, - "default": 0, - "type": "number" - } } ], "responses": { @@ -3270,8 +3220,8 @@ "required": false, "in": "query", "description": "Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.", - "example": "?status=upcoming,past", "schema": { + "example": "?status=upcoming,past", "type": "array", "items": { "type": "string", @@ -3290,8 +3240,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's email address.", - "example": "example@domain.com", "schema": { + "example": "example@domain.com", "type": "string" } }, @@ -3300,8 +3250,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's name.", - "example": "John Doe", "schema": { + "example": "John Doe", "type": "string" } }, @@ -3310,8 +3260,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type ids belonging to the team. Event type ids must be separated by a comma.", - "example": "?eventTypeIds=100,200", "schema": { + "example": "?eventTypeIds=100,200", "type": "string" } }, @@ -3320,8 +3270,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type id belonging to the team.", - "example": "?eventTypeId=100", "schema": { + "example": "?eventTypeId=100", "type": "string" } }, @@ -3330,8 +3280,8 @@ "required": false, "in": "query", "description": "Filter bookings with start after this date string.", - "example": "?afterStart=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterStart=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -3340,8 +3290,8 @@ "required": false, "in": "query", "description": "Filter bookings with end before this date string.", - "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "schema": { + "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "type": "string" } }, @@ -3350,8 +3300,8 @@ "required": false, "in": "query", "description": "Sort results by their start time in ascending or descending order.", - "example": "?sortStart=asc OR ?sortStart=desc", "schema": { + "example": "?sortStart=asc OR ?sortStart=desc", "enum": [ "asc", "desc" @@ -3364,8 +3314,8 @@ "required": false, "in": "query", "description": "Sort results by their end time in ascending or descending order.", - "example": "?sortEnd=asc OR ?sortEnd=desc", "schema": { + "example": "?sortEnd=asc OR ?sortEnd=desc", "enum": [ "asc", "desc" @@ -3378,8 +3328,8 @@ "required": false, "in": "query", "description": "Sort results by their creation time (when booking was made) in ascending or descending order.", - "example": "?sortCreated=asc OR ?sortCreated=desc", "schema": { + "example": "?sortCreated=asc OR ?sortCreated=desc", "enum": [ "asc", "desc" @@ -3392,10 +3342,10 @@ "required": false, "in": "query", "description": "The number of items to return", - "example": 10, "schema": { "minimum": 1, "maximum": 250, + "example": 10, "type": "number" } }, @@ -3404,9 +3354,9 @@ "required": false, "in": "query", "description": "The number of items to skip", - "example": 0, "schema": { "minimum": 0, + "example": 0, "type": "number" } }, @@ -3489,8 +3439,8 @@ "required": false, "in": "query", "description": "Filter booking references by type", - "example": "google_calendar", "schema": { + "example": "google_calendar", "enum": [ "google_calendar", "office365_calendar", @@ -4346,11 +4296,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -4359,10 +4309,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -4723,11 +4673,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -4736,10 +4686,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -5394,8 +5344,8 @@ "required": true, "in": "query", "description": "\n Time starting from which available slots should be checked.\n \n Must be in UTC timezone as ISO 8601 datestring.\n \n You can pass date without hours which defaults to start of day or specify hours:\n 2024-08-13 (will have hours 00:00:00 aka at very beginning of the date) or you can specify hours manually like 2024-08-13T09:00:00Z\n ", - "example": "2050-09-05", "schema": { + "example": "2050-09-05", "type": "string" } }, @@ -5404,8 +5354,8 @@ "required": true, "in": "query", "description": "\n Time until which available slots should be checked.\n \n Must be in UTC timezone as ISO 8601 datestring.\n \n You can pass date without hours which defaults to end of day or specify hours:\n 2024-08-20 (will have hours 23:59:59 aka at the very end of the date) or you can specify hours manually like 2024-08-20T18:00:00Z", - "example": "2050-09-06", "schema": { + "example": "2050-09-06", "type": "string" } }, @@ -5414,8 +5364,8 @@ "required": false, "in": "query", "description": "Time zone in which the available slots should be returned. Defaults to UTC.", - "example": "Europe/Rome", "schema": { + "example": "Europe/Rome", "type": "string" } }, @@ -5424,8 +5374,8 @@ "required": false, "in": "query", "description": "If event type has multiple possible durations then you can specify the desired duration here. Also, if you are fetching slots for a dynamic event then you can specify the duration her which defaults to 30, meaning that returned slots will be each 30 minutes long.", - "example": "60", "schema": { + "example": "60", "type": "number" } }, @@ -5434,8 +5384,8 @@ "required": false, "in": "query", "description": "Format of slot times in response. Use 'range' to get start and end times.", - "example": "range", "schema": { + "example": "range", "enum": [ "range", "time" @@ -5448,8 +5398,8 @@ "required": false, "in": "query", "description": "The unique identifier of the booking being rescheduled. When provided will ensure that the original booking time appears within the returned available slots when rescheduling.", - "example": "abc123def456", "schema": { + "example": "abc123def456", "type": "string" } }, @@ -5458,8 +5408,8 @@ "required": false, "in": "query", "description": "Whether to queue the form response.", - "example": true, "schema": { + "example": true, "type": "boolean" } } @@ -5600,11 +5550,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -5613,10 +5563,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -5906,11 +5856,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -5919,10 +5869,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -6252,10 +6202,10 @@ "required": false, "in": "query", "description": "The number of items to return", - "example": 10, "schema": { "minimum": 1, "maximum": 1000, + "example": 10, "type": "number" } }, @@ -6264,9 +6214,9 @@ "required": false, "in": "query", "description": "The number of items to skip", - "example": 0, "schema": { "minimum": 0, + "example": 0, "type": "number" } }, @@ -6287,8 +6237,8 @@ "required": false, "in": "query", "description": "Filter by assigned attribute option ids. ids must be separated by a comma.", - "example": "?assignedOptionIds=aaaaaaaa-bbbb-cccc-dddd-eeeeee1eee,aaaaaaaa-bbbb-cccc-dddd-eeeeee2eee", "schema": { + "example": "?assignedOptionIds=aaaaaaaa-bbbb-cccc-dddd-eeeeee1eee,aaaaaaaa-bbbb-cccc-dddd-eeeeee2eee", "type": "array", "items": { "type": "string" @@ -6300,9 +6250,9 @@ "required": false, "in": "query", "description": "Query operator used to filter assigned options, AND by default.", - "example": "NONE", "schema": { "default": "AND", + "example": "NONE", "enum": [ "OR", "AND", @@ -6316,8 +6266,8 @@ "required": false, "in": "query", "description": "Filter by teamIds. Team ids must be separated by a comma.", - "example": "?teamIds=100,200", "schema": { + "example": "?teamIds=100,200", "type": "array", "items": { "type": "number" @@ -6593,8 +6543,8 @@ "required": false, "in": "query", "description": "Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.", - "example": "?status=upcoming,past", "schema": { + "example": "?status=upcoming,past", "type": "array", "items": { "type": "string", @@ -6613,8 +6563,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's email address.", - "example": "example@domain.com", "schema": { + "example": "example@domain.com", "type": "string" } }, @@ -6623,8 +6573,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's name.", - "example": "John Doe", "schema": { + "example": "John Doe", "type": "string" } }, @@ -6633,8 +6583,8 @@ "required": false, "in": "query", "description": "Filter bookings by the booking Uid.", - "example": "2NtaeaVcKfpmSZ4CthFdfk", "schema": { + "example": "2NtaeaVcKfpmSZ4CthFdfk", "type": "string" } }, @@ -6643,8 +6593,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type ids belonging to the user. Event type ids must be separated by a comma.", - "example": "?eventTypeIds=100,200", "schema": { + "example": "?eventTypeIds=100,200", "type": "string" } }, @@ -6653,8 +6603,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type id belonging to the user.", - "example": "?eventTypeId=100", "schema": { + "example": "?eventTypeId=100", "type": "string" } }, @@ -6663,8 +6613,8 @@ "required": false, "in": "query", "description": "Filter bookings by team ids that user is part of. Team ids must be separated by a comma.", - "example": "?teamIds=50,60", "schema": { + "example": "?teamIds=50,60", "type": "string" } }, @@ -6673,8 +6623,8 @@ "required": false, "in": "query", "description": "Filter bookings by team id that user is part of", - "example": "?teamId=50", "schema": { + "example": "?teamId=50", "type": "string" } }, @@ -6683,8 +6633,8 @@ "required": false, "in": "query", "description": "Filter bookings with start after this date string.", - "example": "?afterStart=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterStart=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -6693,8 +6643,8 @@ "required": false, "in": "query", "description": "Filter bookings with end before this date string.", - "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "schema": { + "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "type": "string" } }, @@ -6703,8 +6653,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been created after this date string.", - "example": "?afterCreatedAt=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterCreatedAt=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -6713,8 +6663,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been created before this date string.", - "example": "?beforeCreatedAt=2025-03-14T11:00:00.000Z", "schema": { + "example": "?beforeCreatedAt=2025-03-14T11:00:00.000Z", "type": "string" } }, @@ -6723,8 +6673,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been updated after this date string.", - "example": "?afterUpdatedAt=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterUpdatedAt=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -6733,8 +6683,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been updated before this date string.", - "example": "?beforeUpdatedAt=2025-03-14T11:00:00.000Z", "schema": { + "example": "?beforeUpdatedAt=2025-03-14T11:00:00.000Z", "type": "string" } }, @@ -6743,8 +6693,8 @@ "required": false, "in": "query", "description": "Sort results by their start time in ascending or descending order.", - "example": "?sortStart=asc OR ?sortStart=desc", "schema": { + "example": "?sortStart=asc OR ?sortStart=desc", "enum": [ "asc", "desc" @@ -6757,8 +6707,8 @@ "required": false, "in": "query", "description": "Sort results by their end time in ascending or descending order.", - "example": "?sortEnd=asc OR ?sortEnd=desc", "schema": { + "example": "?sortEnd=asc OR ?sortEnd=desc", "enum": [ "asc", "desc" @@ -6771,8 +6721,8 @@ "required": false, "in": "query", "description": "Sort results by their creation time (when booking was made) in ascending or descending order.", - "example": "?sortCreated=asc OR ?sortCreated=desc", "schema": { + "example": "?sortCreated=asc OR ?sortCreated=desc", "enum": [ "asc", "desc" @@ -6785,8 +6735,8 @@ "required": false, "in": "query", "description": "Sort results by their updated time (for example when booking status changes) in ascending or descending order.", - "example": "?sortUpdated=asc OR ?sortUpdated=desc", "schema": { + "example": "?sortUpdated=asc OR ?sortUpdated=desc", "enum": [ "asc", "desc" @@ -6799,9 +6749,9 @@ "required": false, "in": "query", "description": "The number of items to return", - "example": 10, "schema": { "default": 100, + "example": 10, "type": "number" } }, @@ -6810,9 +6760,9 @@ "required": false, "in": "query", "description": "The number of items to skip", - "example": 0, "schema": { "default": 0, + "example": 0, "type": "number" } } @@ -6872,11 +6822,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -6885,10 +6835,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -6897,8 +6847,8 @@ "required": false, "in": "query", "description": "Sort results by their start time in ascending or descending order.", - "example": "?sortStart=asc OR ?sortStart=desc", "schema": { + "example": "?sortStart=asc OR ?sortStart=desc", "enum": [ "asc", "desc" @@ -6911,8 +6861,8 @@ "required": false, "in": "query", "description": "Sort results by their end time in ascending or descending order.", - "example": "?sortEnd=asc OR ?sortEnd=desc", "schema": { + "example": "?sortEnd=asc OR ?sortEnd=desc", "enum": [ "asc", "desc" @@ -7153,11 +7103,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -7166,10 +7116,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -7178,8 +7128,8 @@ "required": false, "in": "query", "description": "Sort results by their start time in ascending or descending order.", - "example": "?sortStart=asc OR ?sortStart=desc", "schema": { + "example": "?sortStart=asc OR ?sortStart=desc", "enum": [ "asc", "desc" @@ -7192,8 +7142,8 @@ "required": false, "in": "query", "description": "Sort results by their end time in ascending or descending order.", - "example": "?sortEnd=asc OR ?sortEnd=desc", "schema": { + "example": "?sortEnd=asc OR ?sortEnd=desc", "enum": [ "asc", "desc" @@ -7206,8 +7156,8 @@ "required": false, "in": "query", "description": "Filter ooo entries by the user email address. user must be within your organization.", - "example": "example@domain.com", "schema": { + "example": "example@domain.com", "type": "string" } } @@ -7595,11 +7545,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -7608,10 +7558,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -7995,8 +7945,8 @@ "required": false, "in": "query", "description": "Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.", - "example": "?status=upcoming,past", "schema": { + "example": "?status=upcoming,past", "type": "array", "items": { "type": "string", @@ -8015,8 +7965,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's email address.", - "example": "example@domain.com", "schema": { + "example": "example@domain.com", "type": "string" } }, @@ -8025,8 +7975,8 @@ "required": false, "in": "query", "description": "Filter bookings by the attendee's name.", - "example": "John Doe", "schema": { + "example": "John Doe", "type": "string" } }, @@ -8035,8 +7985,8 @@ "required": false, "in": "query", "description": "Filter bookings by the booking Uid.", - "example": "2NtaeaVcKfpmSZ4CthFdfk", "schema": { + "example": "2NtaeaVcKfpmSZ4CthFdfk", "type": "string" } }, @@ -8045,8 +7995,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type ids belonging to the user. Event type ids must be separated by a comma.", - "example": "?eventTypeIds=100,200", "schema": { + "example": "?eventTypeIds=100,200", "type": "string" } }, @@ -8055,8 +8005,8 @@ "required": false, "in": "query", "description": "Filter bookings by event type id belonging to the user.", - "example": "?eventTypeId=100", "schema": { + "example": "?eventTypeId=100", "type": "string" } }, @@ -8065,8 +8015,8 @@ "required": false, "in": "query", "description": "Filter bookings by team ids that user is part of. Team ids must be separated by a comma.", - "example": "?teamIds=50,60", "schema": { + "example": "?teamIds=50,60", "type": "string" } }, @@ -8075,8 +8025,8 @@ "required": false, "in": "query", "description": "Filter bookings by team id that user is part of", - "example": "?teamId=50", "schema": { + "example": "?teamId=50", "type": "string" } }, @@ -8085,8 +8035,8 @@ "required": false, "in": "query", "description": "Filter bookings with start after this date string.", - "example": "?afterStart=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterStart=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -8095,8 +8045,8 @@ "required": false, "in": "query", "description": "Filter bookings with end before this date string.", - "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "schema": { + "example": "?beforeEnd=2025-03-07T11:00:00.000Z", "type": "string" } }, @@ -8105,8 +8055,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been created after this date string.", - "example": "?afterCreatedAt=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterCreatedAt=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -8115,8 +8065,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been created before this date string.", - "example": "?beforeCreatedAt=2025-03-14T11:00:00.000Z", "schema": { + "example": "?beforeCreatedAt=2025-03-14T11:00:00.000Z", "type": "string" } }, @@ -8125,8 +8075,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been updated after this date string.", - "example": "?afterUpdatedAt=2025-03-07T10:00:00.000Z", "schema": { + "example": "?afterUpdatedAt=2025-03-07T10:00:00.000Z", "type": "string" } }, @@ -8135,8 +8085,8 @@ "required": false, "in": "query", "description": "Filter bookings that have been updated before this date string.", - "example": "?beforeUpdatedAt=2025-03-14T11:00:00.000Z", "schema": { + "example": "?beforeUpdatedAt=2025-03-14T11:00:00.000Z", "type": "string" } }, @@ -8145,8 +8095,8 @@ "required": false, "in": "query", "description": "Sort results by their start time in ascending or descending order.", - "example": "?sortStart=asc OR ?sortStart=desc", "schema": { + "example": "?sortStart=asc OR ?sortStart=desc", "enum": [ "asc", "desc" @@ -8159,8 +8109,8 @@ "required": false, "in": "query", "description": "Sort results by their end time in ascending or descending order.", - "example": "?sortEnd=asc OR ?sortEnd=desc", "schema": { + "example": "?sortEnd=asc OR ?sortEnd=desc", "enum": [ "asc", "desc" @@ -8173,8 +8123,8 @@ "required": false, "in": "query", "description": "Sort results by their creation time (when booking was made) in ascending or descending order.", - "example": "?sortCreated=asc OR ?sortCreated=desc", "schema": { + "example": "?sortCreated=asc OR ?sortCreated=desc", "enum": [ "asc", "desc" @@ -8187,8 +8137,8 @@ "required": false, "in": "query", "description": "Sort results by their updated time (for example when booking status changes) in ascending or descending order.", - "example": "?sortUpdated=asc OR ?sortUpdated=desc", "schema": { + "example": "?sortUpdated=asc OR ?sortUpdated=desc", "enum": [ "asc", "desc" @@ -8201,9 +8151,9 @@ "required": false, "in": "query", "description": "The number of items to return", - "example": 10, "schema": { "default": 100, + "example": 10, "type": "number" } }, @@ -8212,9 +8162,9 @@ "required": false, "in": "query", "description": "The number of items to skip", - "example": 0, "schema": { "default": 0, + "example": 0, "type": "number" } }, @@ -8863,8 +8813,8 @@ "required": false, "in": "query", "description": "Filter booking references by type", - "example": "google_calendar", "schema": { + "example": "google_calendar", "enum": [ "google_calendar", "office365_calendar", @@ -9099,52 +9049,6 @@ "summary": "Get busy times", "description": "Get busy times from a calendar. Example request URL is `https://api.cal.com/v2/calendars/busy-times?loggedInUsersTz=Europe%2FMadrid&dateFrom=2024-12-18&dateTo=2024-12-18&calendarsToLoad[0][credentialId]=135&calendarsToLoad[0][externalId]=skrauciz%40gmail.com`", "parameters": [ - { - "name": "loggedInUsersTz", - "required": true, - "in": "query", - "description": "The timezone of the logged in user represented as a string", - "example": "America/New_York", - "schema": { - "type": "string" - } - }, - { - "name": "dateFrom", - "required": false, - "in": "query", - "description": "The starting date for the busy times query", - "example": "2023-10-01", - "schema": { - "type": "string" - } - }, - { - "name": "dateTo", - "required": false, - "in": "query", - "description": "The ending date for the busy times query", - "example": "2023-10-31", - "schema": { - "type": "string" - } - }, - { - "name": "credentialId", - "in": "query", - "required": true, - "schema": { - "type": "number" - } - }, - { - "name": "externalId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "Authorization", "in": "header", @@ -9340,7 +9244,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateCalendarCredentialsInput" + "$ref": "#/components/schemas/Function" } } } @@ -10191,11 +10095,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -10204,10 +10108,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -10664,11 +10568,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -10677,10 +10581,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -10688,9 +10592,9 @@ "name": "slug", "required": false, "in": "query", - "example": "organization-slug", "description": "The slug of the managed organization", "schema": { + "example": "organization-slug", "type": "string" } }, @@ -10698,9 +10602,9 @@ "name": "metadataKey", "required": false, "in": "query", - "example": "metadata-key", "description": "The key of the metadata - it is case sensitive so provide exactly as stored. If you provide it then you must also provide metadataValue", "schema": { + "example": "metadata-key", "type": "string" } }, @@ -10708,9 +10612,9 @@ "name": "metadataValue", "required": false, "in": "query", - "example": "metadata-value", "description": "The value of the metadata - it is case sensitive so provide exactly as stored. If you provide it then you must also provide metadataKey", "schema": { + "example": "metadata-value", "type": "string" } } @@ -11372,11 +11276,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -11385,10 +11289,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -11437,11 +11341,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -11450,10 +11354,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -11600,8 +11504,8 @@ "required": true, "in": "query", "description": "\n Time starting from which available slots should be checked.\n \n Must be in UTC timezone as ISO 8601 datestring.\n \n You can pass date without hours which defaults to start of day or specify hours:\n 2024-08-13 (will have hours 00:00:00 aka at very beginning of the date) or you can specify hours manually like 2024-08-13T09:00:00Z\n ", - "example": "2050-09-05", "schema": { + "example": "2050-09-05", "type": "string" } }, @@ -11610,8 +11514,8 @@ "required": true, "in": "query", "description": "\n Time until which available slots should be checked.\n \n Must be in UTC timezone as ISO 8601 datestring.\n \n You can pass date without hours which defaults to end of day or specify hours:\n 2024-08-20 (will have hours 23:59:59 aka at the very end of the date) or you can specify hours manually like 2024-08-20T18:00:00Z", - "example": "2050-09-06", "schema": { + "example": "2050-09-06", "type": "string" } }, @@ -11620,8 +11524,8 @@ "required": false, "in": "query", "description": "Time zone in which the available slots should be returned. Defaults to UTC.", - "example": "Europe/Rome", "schema": { + "example": "Europe/Rome", "type": "string" } }, @@ -11630,8 +11534,8 @@ "required": false, "in": "query", "description": "If event type has multiple possible durations then you can specify the desired duration here. Also, if you are fetching slots for a dynamic event then you can specify the duration her which defaults to 30, meaning that returned slots will be each 30 minutes long.", - "example": "60", "schema": { + "example": "60", "type": "number" } }, @@ -11640,8 +11544,8 @@ "required": false, "in": "query", "description": "Format of slot times in response. Use 'range' to get start and end times.", - "example": "range", "schema": { + "example": "range", "enum": [ "range", "time" @@ -11654,8 +11558,8 @@ "required": false, "in": "query", "description": "The unique identifier of the booking being rescheduled. When provided will ensure that the original booking time appears within the returned available slots when rescheduling.", - "example": "abc123def456", "schema": { + "example": "abc123def456", "type": "string" } }, @@ -12103,96 +12007,108 @@ "required": false, "in": "query", "description": "The unique identifier of the booking being rescheduled. When provided will ensure that the original booking time appears within the returned available slots when rescheduling.", - "example": "abc123def456", - "schema": {} + "schema": { + "example": "abc123def456" + } }, { "name": "start", "required": true, "in": "query", "description": "\n Time starting from which available slots should be checked.\n\n Must be in UTC timezone as ISO 8601 datestring.\n\n You can pass date without hours which defaults to start of day or specify hours:\n 2024-08-13 (will have hours 00:00:00 aka at very beginning of the date) or you can specify hours manually like 2024-08-13T09:00:00Z.", - "example": "2050-09-05", - "schema": {} + "schema": { + "example": "2050-09-05" + } }, { "name": "end", "required": true, "in": "query", "description": "\n Time until which available slots should be checked.\n\n Must be in UTC timezone as ISO 8601 datestring.\n\n You can pass date without hours which defaults to end of day or specify hours:\n 2024-08-20 (will have hours 23:59:59 aka at the very end of the date) or you can specify hours manually like 2024-08-20T18:00:00Z.", - "example": "2050-09-06", - "schema": {} + "schema": { + "example": "2050-09-06" + } }, { "name": "organizationSlug", "required": false, "in": "query", "description": "The slug of the organization to which user with username belongs or team with teamSlug belongs.", - "example": "org-slug", - "schema": {} + "schema": { + "example": "org-slug" + } }, { "name": "teamSlug", "required": false, "in": "query", "description": "The slug of the team who owns event type with eventTypeSlug - used when slots are checked for team event type.", - "example": "team-slug", - "schema": {} + "schema": { + "example": "team-slug" + } }, { "name": "username", "required": false, "in": "query", "description": "The username of the user who owns event type with eventTypeSlug - used when slots are checked for individual user event type.", - "example": "bob", - "schema": {} + "schema": { + "example": "bob" + } }, { "name": "eventTypeSlug", "required": false, "in": "query", "description": "The slug of the event type for which available slots should be checked. If slug is provided then username or teamSlug must be provided too and if relevant organizationSlug too.", - "example": "event-type-slug", - "schema": {} + "schema": { + "example": "event-type-slug" + } }, { "name": "eventTypeId", "required": false, "in": "query", "description": "The ID of the event type for which available slots should be checked.", - "example": "100", - "schema": {} + "schema": { + "example": "100" + } }, { "name": "usernames", "required": false, "in": "query", "description": "The usernames for which available slots should be checked separated by a comma.\n\n Checking slots by usernames is used mainly for dynamic events where there is no specific event but we just want to know when 2 or more people are available.\n\n Must contain at least 2 usernames.", - "example": "alice,bob", - "schema": {} + "schema": { + "example": "alice,bob" + } }, { "name": "format", "required": false, "in": "query", "description": "Format of slot times in response. Use 'range' to get start and end times. Use 'time' or omit this query parameter to get only start time.", - "example": "range", - "schema": {} + "schema": { + "example": "range" + } }, { "name": "duration", "required": false, "in": "query", "description": "If event type has multiple possible durations then you can specify the desired duration here. Also, if you are fetching slots for a dynamic event then you can specify the duration her which defaults to 30, meaning that returned slots will be each 30 minutes long.", - "example": "60", - "schema": {} + "schema": { + "example": "60" + } }, { "name": "timeZone", "required": false, "in": "query", "description": "Time zone in which the available slots should be returned. Defaults to UTC.", - "example": "Europe/Rome", - "schema": {} + "schema": { + "example": "Europe/Rome" + } } ], "responses": { @@ -13162,11 +13078,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -13175,10 +13091,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -13377,11 +13293,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -13390,10 +13306,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -13621,11 +13537,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -13634,10 +13550,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -13686,11 +13602,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -13699,10 +13615,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -14011,11 +13927,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -14024,10 +13940,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -14068,11 +13984,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -14081,10 +13997,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } }, @@ -14255,11 +14171,11 @@ "required": false, "in": "query", "description": "Maximum number of items to return", - "example": 25, "schema": { "minimum": 1, "maximum": 250, "default": 250, + "example": 25, "type": "number" } }, @@ -14268,10 +14184,10 @@ "required": false, "in": "query", "description": "Number of items to skip", - "example": 0, "schema": { "minimum": 0, "default": 0, + "example": 0, "type": "number" } } @@ -25151,53 +25067,9 @@ "status" ] }, - "GoogleServiceAccountKeyInput": { + "Function": { "type": "object", - "properties": { - "private_key": { - "type": "string" - }, - "client_email": { - "type": "string" - }, - "client_id": { - "type": "string" - } - }, - "required": [ - "private_key", - "client_email", - "client_id" - ] - }, - "CreateDelegationCredentialInput": { - "type": "object", - "properties": { - "workspacePlatformSlug": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "serviceAccountKey": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/GoogleServiceAccountKeyInput" - }, - { - "$ref": "#/components/schemas/MicrosoftServiceAccountKeyInput" - } - ] - } - } - }, - "required": [ - "workspacePlatformSlug", - "domain", - "serviceAccountKey" - ] + "properties": {} }, "WorkspacePlatformDto": { "type": "object", @@ -25271,6 +25143,25 @@ "data" ] }, + "GoogleServiceAccountKeyInput": { + "type": "object", + "properties": { + "private_key": { + "type": "string" + }, + "client_email": { + "type": "string" + }, + "client_id": { + "type": "string" + } + }, + "required": [ + "private_key", + "client_email", + "client_id" + ] + }, "UpdateDelegationCredentialInput": { "type": "object", "properties": { @@ -25729,21 +25620,6 @@ "data" ] }, - "CreateCalendarCredentialsInput": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "required": [ - "username", - "password" - ] - }, "DeleteCalendarCredentialsInputBodyDto": { "type": "object", "properties": { diff --git a/apps/api/v2/test/fixtures/repository/attendee.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/attendee.repository.fixture.ts index a7ba6cf1d0..266ecd55b4 100644 --- a/apps/api/v2/test/fixtures/repository/attendee.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/attendee.repository.fixture.ts @@ -8,7 +8,7 @@ export class AttendeeRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/attributes.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/attributes.repository.fixture.ts index c33d247a6a..867df4ea66 100644 --- a/apps/api/v2/test/fixtures/repository/attributes.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/attributes.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Prisma, User } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; export class AttributeRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/booking-seat.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/booking-seat.repository.fixture.ts index a0554adbdc..e3b31c47c7 100644 --- a/apps/api/v2/test/fixtures/repository/booking-seat.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/booking-seat.repository.fixture.ts @@ -8,7 +8,7 @@ export class BookingSeatRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/bookings.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/bookings.repository.fixture.ts index b93532167c..e55479db25 100644 --- a/apps/api/v2/test/fixtures/repository/bookings.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/bookings.repository.fixture.ts @@ -1,15 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Booking, User } from "@prisma/client"; -import type { Prisma } from "@calcom/prisma/client"; +import type { Booking, User, Prisma } from "@calcom/prisma/client"; export class BookingsRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/credentials.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/credentials.repository.fixture.ts index 7648890f16..2f27cb161e 100644 --- a/apps/api/v2/test/fixtures/repository/credentials.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/credentials.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; export class CredentialsRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/event-types.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/event-types.repository.fixture.ts index d820808983..949696c961 100644 --- a/apps/api/v2/test/fixtures/repository/event-types.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/event-types.repository.fixture.ts @@ -1,16 +1,14 @@ -import { CreateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/create-event-type.input"; import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { EventType } from "@prisma/client"; -import type { Prisma } from "@calcom/prisma/client"; +import type { EventType, Prisma } from "@calcom/prisma/client"; export class EventTypesRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/hosts.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/hosts.repository.fixture.ts index 6e295efe93..da23477614 100644 --- a/apps/api/v2/test/fixtures/repository/hosts.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/hosts.repository.fixture.ts @@ -8,7 +8,7 @@ export class HostsRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/membership.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/membership.repository.fixture.ts index 3382d36ea3..9c506af879 100644 --- a/apps/api/v2/test/fixtures/repository/membership.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/membership.repository.fixture.ts @@ -1,15 +1,15 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Membership, Prisma, Team, User } from "@prisma/client"; import { MembershipRole } from "@calcom/platform-libraries"; +import type { Membership, Prisma, Team, User } from "@calcom/prisma/client"; export class MembershipRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/oauth-client.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/oauth-client.repository.fixture.ts index 0c89a7a29a..da92295cda 100644 --- a/apps/api/v2/test/fixtures/repository/oauth-client.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/oauth-client.repository.fixture.ts @@ -1,15 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { PlatformOAuthClient, Prisma } from "@prisma/client"; -import { CreateOAuthClientInput } from "@calcom/platform-types"; +import type { PlatformOAuthClient, Prisma } from "@calcom/prisma/client"; export class OAuthClientRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/ooo.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/ooo.repository.fixture.ts index f560466186..7ddef90564 100644 --- a/apps/api/v2/test/fixtures/repository/ooo.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/ooo.repository.fixture.ts @@ -1,15 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { PlatformOAuthClient, Prisma } from "@prisma/client"; -import { CreateOAuthClientInput } from "@calcom/platform-types"; +import type { Prisma } from "@calcom/prisma/client"; export class OOORepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/organization.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/organization.repository.fixture.ts index dbf746918c..83b6749799 100644 --- a/apps/api/v2/test/fixtures/repository/organization.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/organization.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Prisma, Team } from "@prisma/client"; + +import type { Prisma, Team } from "@calcom/prisma/client"; export class OrganizationRepositoryFixture { private primaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.primaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/profiles.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/profiles.repository.fixture.ts index e351ddbc17..20859c521d 100644 --- a/apps/api/v2/test/fixtures/repository/profiles.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/profiles.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; export class ProfileRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/routing-forms.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/routing-forms.repository.fixture.ts index 5567b22f53..eedb4a46f9 100644 --- a/apps/api/v2/test/fixtures/repository/routing-forms.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/routing-forms.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Prisma, App_RoutingForms_Form, App_RoutingForms_FormResponse } from "@prisma/client"; + +import type { Prisma, App_RoutingForms_Form, App_RoutingForms_FormResponse } from "@calcom/prisma/client"; export class RoutingFormsRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/schedules.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/schedules.repository.fixture.ts index 3457685082..85a9613a6c 100644 --- a/apps/api/v2/test/fixtures/repository/schedules.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/schedules.repository.fixture.ts @@ -1,15 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Schedule } from "@prisma/client"; -import type { Prisma } from "@calcom/prisma/client"; +import type { Schedule, Prisma } from "@calcom/prisma/client"; export class SchedulesRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/selected-slot.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/selected-slot.repository.fixture.ts index e4f9221e84..1ba1ff61d5 100644 --- a/apps/api/v2/test/fixtures/repository/selected-slot.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/selected-slot.repository.fixture.ts @@ -1,7 +1,8 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { SelectedSlots } from "@prisma/client"; + +import type { SelectedSlots } from "@calcom/prisma/client"; export class SelectedSlotRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; diff --git a/apps/api/v2/test/fixtures/repository/team.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/team.repository.fixture.ts index 0e917e3e12..0d2e3afb2d 100644 --- a/apps/api/v2/test/fixtures/repository/team.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/team.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Prisma, Team } from "@prisma/client"; + +import type { Prisma, Team } from "@calcom/prisma/client"; export class TeamRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/users.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/users.repository.fixture.ts index 92449ddb78..0c21b21669 100644 --- a/apps/api/v2/test/fixtures/repository/users.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/users.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import { Prisma, User } from "@prisma/client"; + +import type { Prisma, User } from "@calcom/prisma/client"; export class UserRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/verified-resources.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/verified-resources.repository.fixture.ts index 7c458c2e0d..20d19336ea 100644 --- a/apps/api/v2/test/fixtures/repository/verified-resources.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/verified-resources.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; export class VerifiedResourcesRepositoryFixtures { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/webhooks.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/webhooks.repository.fixture.ts index 484078e9bb..c85e0142b3 100644 --- a/apps/api/v2/test/fixtures/repository/webhooks.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/webhooks.repository.fixture.ts @@ -1,13 +1,14 @@ import { PrismaReadService } from "@/modules/prisma/prisma-read.service"; import { PrismaWriteService } from "@/modules/prisma/prisma-write.service"; import { TestingModule } from "@nestjs/testing"; -import type { Prisma } from "@prisma/client"; + +import type { Prisma } from "@calcom/prisma/client"; export class WebhookRepositoryFixture { private primaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.primaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/test/fixtures/repository/workflow.repository.fixture.ts b/apps/api/v2/test/fixtures/repository/workflow.repository.fixture.ts index aa6c36dbd9..111b302383 100644 --- a/apps/api/v2/test/fixtures/repository/workflow.repository.fixture.ts +++ b/apps/api/v2/test/fixtures/repository/workflow.repository.fixture.ts @@ -8,7 +8,7 @@ export class WorkflowRepositoryFixture { private prismaReadClient: PrismaReadService["prisma"]; private prismaWriteClient: PrismaWriteService["prisma"]; - constructor(private readonly module: TestingModule) { + constructor(module: TestingModule) { this.prismaReadClient = module.get(PrismaReadService).prisma; this.prismaWriteClient = module.get(PrismaWriteService).prisma; } diff --git a/apps/api/v2/tsconfig.json b/apps/api/v2/tsconfig.json index 283477e629..0709c3bef9 100644 --- a/apps/api/v2/tsconfig.json +++ b/apps/api/v2/tsconfig.json @@ -14,7 +14,8 @@ "jsx": "react-jsx", "paths": { "@/*": ["./src/*"], - "@prisma/client/*": ["@calcom/prisma/client/*"], + "@prisma/client/*": ["./client/*"], + "@calcom/prisma/enums": ["../../../packages/prisma/enums"], "@calcom/platform-constants": ["../../../packages/platform/constants/index.ts"], "@calcom/platform-types": ["../../../packages/platform/types/index.ts"], "@calcom/platform-utils": ["../../../packages/platform/utils/index.ts"], diff --git a/apps/web/app/(booking-page-wrapper)/[user]/[type]/page.tsx b/apps/web/app/(booking-page-wrapper)/[user]/[type]/page.tsx index d4ad78504d..a72a40904a 100644 --- a/apps/web/app/(booking-page-wrapper)/[user]/[type]/page.tsx +++ b/apps/web/app/(booking-page-wrapper)/[user]/[type]/page.tsx @@ -26,12 +26,11 @@ export const generateMetadata = async ({ params, searchParams }: PageProps) => { const meeting = { title, profile: { name: profileName, image: profileImage }, - users: [ - ...(eventData?.subsetOfUsers || []).map((user) => ({ + users: + eventData?.subsetOfUsers.map((user) => ({ name: `${user.name}`, username: `${user.username}`, - })), - ], + })) || [], }; const decodedParams = decodeParams(await params); const metadata = await generateMeetingMetadata( diff --git a/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/queries.ts b/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/queries.ts index 825e2c02d3..c731894936 100644 --- a/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/queries.ts +++ b/apps/web/app/(booking-page-wrapper)/team/[slug]/[type]/queries.ts @@ -1,4 +1,3 @@ -import type { Prisma } from "@prisma/client"; import type { GetServerSidePropsContext } from "next"; import { unstable_cache } from "next/cache"; @@ -16,6 +15,7 @@ import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage"; import { TeamRepository } from "@calcom/lib/server/repository/team"; import { UserRepository } from "@calcom/lib/server/repository/user"; import { prisma } from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; import type { SchedulingType } from "@calcom/prisma/enums"; import { eventTypeMetaDataSchemaWithTypedApps } from "@calcom/prisma/zod-utils"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/api-keys/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/api-keys/page.tsx index cd85c11223..7bd6cbfa2a 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/api-keys/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/developer/api-keys/page.tsx @@ -22,7 +22,8 @@ export const generateMetadata = async () => const getCachedApiKeys = unstable_cache( async (userId: number) => { - return await PrismaApiKeyRepository.findApiKeysFromUserId({ userId }); + const apiKeyRepository = await PrismaApiKeyRepository.withGlobalPrisma(); + return await apiKeyRepository.findApiKeysFromUserId({ userId }); }, undefined, { revalidate: 3600, tags: ["viewer.apiKeys.list"] } // Cache for 1 hour diff --git a/apps/web/app/api/cron/monthlyDigestEmail/route.ts b/apps/web/app/api/cron/monthlyDigestEmail/route.ts index 4f1a42ce47..80e55f60f6 100644 --- a/apps/web/app/api/cron/monthlyDigestEmail/route.ts +++ b/apps/web/app/api/cron/monthlyDigestEmail/route.ts @@ -1,4 +1,3 @@ -import type { Prisma } from "@prisma/client"; import { defaultResponderForAppDir } from "app/api/defaultResponderForAppDir"; import type { NextRequest } from "next/server"; import { NextResponse } from "next/server"; @@ -9,6 +8,7 @@ import { sendMonthlyDigestEmails } from "@calcom/emails/email-manager"; import { EventsInsights } from "@calcom/features/insights/server/events"; import { getTranslation } from "@calcom/lib/server/i18n"; import prisma from "@calcom/prisma"; +import type { Prisma } from "@calcom/prisma/client"; const querySchema = z.object({ page: z.coerce.number().min(0).optional().default(0), diff --git a/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts b/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts index 3e9f58ea55..5eafdbe761 100644 --- a/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts +++ b/apps/web/app/api/routing-forms/queued-response/__tests__/queued-response.test.ts @@ -1,3 +1,4 @@ +import "../../../../../../../tests/libs/__mocks__/prisma"; import { beforeEach, describe, it, expect, vi } from "vitest"; import { onSubmissionOfFormResponse } from "@calcom/app-store/routing-forms/lib/formSubmissionUtils"; diff --git a/apps/web/app/api/teams/api/create/route.ts b/apps/web/app/api/teams/api/create/route.ts index f9b8a19ffb..08fd304fbb 100644 --- a/apps/web/app/api/teams/api/create/route.ts +++ b/apps/web/app/api/teams/api/create/route.ts @@ -8,7 +8,8 @@ import stripe from "@calcom/features/ee/payments/server/stripe"; import { HttpError } from "@calcom/lib/http-error"; import prisma from "@calcom/prisma"; import { MembershipRole } from "@calcom/prisma/enums"; -import { _MembershipModel as Membership, _TeamModel as Team } from "@calcom/prisma/zod"; +import { MembershipSchema } from "@calcom/prisma/zod/modelSchema/MembershipSchema"; +import { TeamSchema } from "@calcom/prisma/zod/modelSchema/TeamSchema"; const querySchema = z.object({ session_id: z.string().min(1), @@ -21,8 +22,8 @@ const checkoutSessionMetadataSchema = z.object({ type CheckoutSessionMetadata = z.infer; -export const schemaTeamReadPublic = Team.omit({}); -export const schemaMembershipPublic = Membership.merge(z.object({ team: Team }).partial()); +export const schemaTeamReadPublic = TeamSchema.omit({}); +export const schemaMembershipPublic = MembershipSchema.merge(z.object({ team: TeamSchema }).partial()); async function handler(request: NextRequest) { try { diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index 3bd488605f..dea75e057c 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -1,4 +1,3 @@ -import type { AssignmentReason } from "@prisma/client"; import Link from "next/link"; import { useState } from "react"; import { Controller, useFieldArray, useForm } from "react-hook-form"; @@ -18,6 +17,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale"; import { useGetTheme } from "@calcom/lib/hooks/useTheme"; import isSmsCalEmail from "@calcom/lib/isSmsCalEmail"; import { getEveryFreqFor } from "@calcom/lib/recurringStrings"; +import type { AssignmentReason } from "@calcom/prisma/client"; import { BookingStatus } from "@calcom/prisma/enums"; import { bookingMetadataSchema } from "@calcom/prisma/zod-utils"; import type { RouterInputs, RouterOutputs } from "@calcom/trpc/react"; diff --git a/apps/web/components/getting-started/steps-views/UserProfile.tsx b/apps/web/components/getting-started/steps-views/UserProfile.tsx index 113fc03b6b..b89a15e27c 100644 --- a/apps/web/components/getting-started/steps-views/UserProfile.tsx +++ b/apps/web/components/getting-started/steps-views/UserProfile.tsx @@ -9,6 +9,7 @@ import { useTelemetry } from "@calcom/lib/hooks/useTelemetry"; import { md } from "@calcom/lib/markdownIt"; import { telemetryEventTypes } from "@calcom/lib/telemetry"; import turndown from "@calcom/lib/turndownService"; +import { localStorage } from "@calcom/lib/webstorage"; import { trpc } from "@calcom/trpc/react"; import type { RouterOutputs } from "@calcom/trpc/react"; import { UserAvatar } from "@calcom/ui/components/avatar"; diff --git a/apps/web/components/schemas/EventReservationSchema.tsx b/apps/web/components/schemas/EventReservationSchema.tsx index 9c4e4ee9d6..bccc587e3f 100644 --- a/apps/web/components/schemas/EventReservationSchema.tsx +++ b/apps/web/components/schemas/EventReservationSchema.tsx @@ -1,9 +1,10 @@ -import type { Attendee, Booking, User } from "@prisma/client"; import type { FC } from "react"; import { useMemo } from "react"; import { JsonLd } from "react-schemaorg"; import type { EventReservation, Person, ReservationStatusType } from "schema-dts"; +import type { Attendee, Booking, User } from "@calcom/prisma/client"; + type EventSchemaUser = Pick; type EventSchemaAttendee = Pick; diff --git a/apps/web/instrumentation.ts b/apps/web/instrumentation.ts index f13161b6cc..5141eae6d3 100644 --- a/apps/web/instrumentation.ts +++ b/apps/web/instrumentation.ts @@ -1,6 +1,5 @@ -import { type Instrumentation } from 'next' - import * as Sentry from "@sentry/nextjs"; +import { type Instrumentation } from "next"; export async function register() { if (process.env.NODE_ENV === "production") { @@ -13,9 +12,7 @@ export async function register() { } } -export const onRequestError: Instrumentation.onRequestError = ( err, - request, - context) => { +export const onRequestError: Instrumentation.onRequestError = (err, request, context) => { if (process.env.NODE_ENV === "production") { Sentry.captureRequestError(err, request, context); } diff --git a/apps/web/lib/apps/installation/[[...step]]/getServerSideProps.ts b/apps/web/lib/apps/installation/[[...step]]/getServerSideProps.ts index 4d69630b50..1862e0a348 100644 --- a/apps/web/lib/apps/installation/[[...step]]/getServerSideProps.ts +++ b/apps/web/lib/apps/installation/[[...step]]/getServerSideProps.ts @@ -97,6 +97,7 @@ const getEventTypes = async (userId: number, teamIds?: number[]) => { bookingFields: true, calVideoSettings: true, } satisfies Prisma.EventTypeSelect; + let eventTypeGroups: TEventTypeGroup[] | null = []; if (teamIds && teamIds.length > 0) { diff --git a/apps/web/lib/hooks/useIsBookingPage.ts b/apps/web/lib/hooks/useIsBookingPage.ts index beca240e3f..b0ebe545cc 100644 --- a/apps/web/lib/hooks/useIsBookingPage.ts +++ b/apps/web/lib/hooks/useIsBookingPage.ts @@ -14,7 +14,9 @@ export default function useIsBookingPage(): boolean { "/apps/routing-forms/routing-link", // Routing Form page "/forms/", // Rewrites to /apps/routing-forms/routing-link ].some((route) => pathname?.startsWith(route)); - const isBookingsListPage = ["/upcoming", "/unconfirmed", "/recurring", "/cancelled", "/past"].some((route) => pathname?.endsWith(route)); + const isBookingsListPage = ["/upcoming", "/unconfirmed", "/recurring", "/cancelled", "/past"].some( + (route) => pathname?.endsWith(route) + ); const searchParams = useCompatSearchParams(); const isUserBookingPage = Boolean(searchParams?.get("user")); diff --git a/apps/web/lib/isPrismaObj.ts b/apps/web/lib/isPrismaObj.ts index d405ab32b3..78b871e729 100644 --- a/apps/web/lib/isPrismaObj.ts +++ b/apps/web/lib/isPrismaObj.ts @@ -1,4 +1,4 @@ -import type { Prisma } from "@prisma/client"; +import type { Prisma } from "@calcom/prisma/client"; function isPrismaObj(obj: unknown): obj is Prisma.JsonObject { return typeof obj === "object" && !Array.isArray(obj); diff --git a/apps/web/lib/pages/auth/verify-email.test.ts b/apps/web/lib/pages/auth/verify-email.test.ts index 68a62ae01f..14d3304712 100644 --- a/apps/web/lib/pages/auth/verify-email.test.ts +++ b/apps/web/lib/pages/auth/verify-email.test.ts @@ -8,8 +8,26 @@ import { inviteMembersWithNoInviterPermissionCheck } from "@calcom/trpc/server/r import { moveUserToMatchingOrg } from "./verify-email"; +// TODO: This test passes but coverage is very low. vi.mock("@calcom/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler"); vi.mock("@calcom/lib/server/repository/organization"); +vi.mock("@calcom/prisma", () => { + return { + prisma: vi.fn(), + }; +}); + +vi.mock("@calcom/features/ee/billing/stripe-billling-service", () => { + return { + StripeBillingService: vi.fn(), + }; +}); + +vi.mock("@calcom/trpc/server/routers/viewer/teams/inviteMember/inviteMember.handler", () => { + return { + inviteMembersWithNoInviterPermissionCheck: vi.fn(), + }; +}); describe("moveUserToMatchingOrg", () => { const email = "test@example.com"; diff --git a/apps/web/lib/team/[slug]/[type]/getServerSideProps.tsx b/apps/web/lib/team/[slug]/[type]/getServerSideProps.tsx index f0c7ab8d3b..75a956968c 100644 --- a/apps/web/lib/team/[slug]/[type]/getServerSideProps.tsx +++ b/apps/web/lib/team/[slug]/[type]/getServerSideProps.tsx @@ -10,7 +10,7 @@ import { FeaturesRepository } from "@calcom/features/flags/features.repository"; import { getPlaceholderAvatar } from "@calcom/lib/defaultAvatarImage"; import { shouldHideBrandingForTeamEvent } from "@calcom/lib/hideBranding"; import slugify from "@calcom/lib/slugify"; -import prisma from "@calcom/prisma"; +import { prisma } from "@calcom/prisma"; import type { User } from "@calcom/prisma/client"; import { BookingStatus, RedirectType, SchedulingType } from "@calcom/prisma/enums"; import { EventTypeMetaDataSchema } from "@calcom/prisma/zod-utils"; diff --git a/apps/web/modules/settings/security/password-view.tsx b/apps/web/modules/settings/security/password-view.tsx index f9ef34f0a8..68274643a0 100644 --- a/apps/web/modules/settings/security/password-view.tsx +++ b/apps/web/modules/settings/security/password-view.tsx @@ -4,7 +4,6 @@ import { signOut, useSession } from "next-auth/react"; import { useState } from "react"; import { useForm } from "react-hook-form"; -import { identityProviderNameMap } from "@calcom/features/auth/lib/identityProviderNameMap"; import SectionBottomActions from "@calcom/features/settings/SectionBottomActions"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { IdentityProvider } from "@calcom/prisma/enums"; @@ -170,13 +169,13 @@ const PasswordView = ({ user }: PasswordViewProps) => {

{t("account_managed_by_identity_provider", { - provider: identityProviderNameMap[user.identityProvider], + provider: IdentityProvider[user.identityProvider], })}

{t("account_managed_by_identity_provider_description", { - provider: identityProviderNameMap[user.identityProvider], + provider: IdentityProvider[user.identityProvider], })}