be249a94de226491206017c904890b98196cf21d
67
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c28eb90928 |
chore: Upgrade prisma to 6.7.0 (#21264)
* chore: Upgrade prisma to 6.7.0 * Build fixes * type fixes Signed-off-by: Omar López <zomars@me.com> * 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 <zomars@me.com> * WIP Signed-off-by: Omar López <zomars@me.com> * Update getPublicEvent.ts * Update imports Signed-off-by: Omar López <zomars@me.com> * Update gitignore Signed-off-by: Omar López <zomars@me.com> * update remaining imports Signed-off-by: Omar López <zomars@me.com> * 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 <zomars@me.com> * patches prismock Signed-off-by: Omar López <zomars@me.com> * Update reschedule.test.ts * Update prisma.ts * patch prismock Signed-off-by: Omar López <zomars@me.com> * fix enums imports Signed-off-by: Omar López <zomars@me.com> * 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 <zomars@me.com> * fixes Signed-off-by: Omar López <zomars@me.com> * chore: bump platform libraries * Update yarn.lock * more fixes Signed-off-by: Omar López <zomars@me.com> * fixes Signed-off-by: Omar López <zomars@me.com> * 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 <zomars@me.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com> Co-authored-by: supalarry <laurisskraucis@gmail.com> Co-authored-by: cal.com <morgan@cal.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: Benny Joo <sldisek783@gmail.com> |
||
|
|
9e9f815809 | refactor: replace static methods of HostRepository and PrismaAttributeRepository (#23175) | ||
|
+8 |
ebeb008f9b |
refactor: convert findQualifiedHostsWithDelegationCredentials to service class with DI (#22974)
* refactor: convert findQualifiedHostsWithDelegationCredentials to service class with DI - Create QualifiedHostsService class following UserAvailabilityService pattern - Add IQualifiedHostsService interface with prisma and bookingRepo dependencies - Create DI module and container for qualified hosts service - Update filterHostsBySameRoundRobinHost to accept prisma as parameter - Update all usage sites to use the new service: - loadAndValidateUsers.ts - slots/util.ts - test mocks in _post.test.ts - Maintain backward compatibility with original function export - Fix type issues in team properties (rrResetInterval, rrTimestampBasis) Co-Authored-By: morgan@cal.com <morgan@cal.com> * fix: update filterHostsBySameRoundRobinHost test to include prisma parameter - Add missing prisma parameter to all test function calls - Resolves unit test failure caused by function signature change Co-Authored-By: morgan@cal.com <morgan@cal.com> * fix: resolve type issues in FilterHostsService - Import PrismaClient type instead of using unknown - Fix type compatibility for BookingRepository constructor - Update test mocks to use proper BookingRepository type - Ensure all DI dependencies are properly typed Co-Authored-By: morgan@cal.com <morgan@cal.com> * refactor: rename DI files to CamelCase and update imports - Rename all files in packages/lib/di from kebab-case to CamelCase - Update 22 external files with import statements to use new file names - Update internal DI module files with corrected imports - Maintain consistency with TypeScript naming conventions Co-Authored-By: morgan@cal.com <morgan@cal.com> * chore: bump platform libs * chore: bump platform libs * fix: remove obsolete vitest mock after service class refactoring - Remove obsolete mock for old function module - Keep correct mock for new DI container - Resolves CI unit test failures Co-Authored-By: morgan@cal.com <morgan@cal.com> * fix: correct import path for calAIPhone zod-utils module Co-Authored-By: morgan@cal.com <morgan@cal.com> * fix: Booker active booking limit can't be switched off (#23005) * refactor: Get rid of `getServerSideProps` for /getting-started pages (#23003) * refactor * fix type check * fix: Remove Reporting page within Routing Forms (#22990) * fix error in handleNewBooking (#23011) Co-authored-by: CarinaWolli <wollencarina@gmail.com> * Documentation edits made through Mintlify web editor (#23007) Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com> * fix: Contact support button position changed from absolute to fixed (#23002) * feat: Add private links to API (#22943) * --init * address change requests * adding further changes * address feedback * further changes * further clean-up * clean up * fix module import and others * add guards * remove unnecessary comments * remove unnecessary comments * cleanup * sort coderabbig suggestions * improve check * chore: bump platform libraries --------- Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com> Co-authored-by: supalarry <laurisskraucis@gmail.com> * chore: release v5.5.15 * chore: bump platform libs * chore: bump platform libs --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: morgan@cal.com <morgan@cal.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Co-authored-by: Benny Joo <sldisek783@gmail.com> Co-authored-by: Sahitya Chandra <sahityajb@gmail.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com> Co-authored-by: Ayush Kumar <kumarayushkumar@protonmail.com> Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com> Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com> Co-authored-by: supalarry <laurisskraucis@gmail.com> Co-authored-by: emrysal <me@alexvanandel.com> |
||
|
|
c3634b3aba |
refactor: getUserAvailability into service with DI (#22881)
* refactor: getUserAvailability into service with DI * chore: bump platform libs * disable bull queue in e2e for bookings * chore: bump platform libs * chore: bump platform libs * fix: should update event type bookingFields test --------- Co-authored-by: Alex van Andel <me@alexvanandel.com> |
||
|
|
f7b201b0b5 |
fix: Return empty available days if error querying calendar (#22828)
* Return a busy block placeholder if calendar throws an error * Refactor `getCalendarsEvents` to return an object with a success prop * Throw error in `getBusyTimes` if failed to fetch calendar availability * Return empty available days if error getting busy times * yeet. * Type fix * Fix type error in getLuckyUsers * Type fixes * Type fix * Type fix * Fix test * Fix test mocks * Refactor calendars.service to use new calendarBusyTimesQuery --------- Co-authored-by: Alex van Andel <me@alexvanandel.com> |
||
|
|
e4c47640fc |
refactor: convert UserRepository to use dependency injection pattern (#22360)
* refactor: convert UserRepository to use dependency injection pattern - Convert all static methods to public instance methods - Add constructor that takes PrismaClient parameter - Update all usage sites to use new instantiation pattern: new UserRepository(prisma).method() - Follow same pattern as PrismaOOORepository for consistency - Maintain all existing method logic and signatures unchanged - Update 125+ files across the codebase to adapt to new pattern Co-Authored-By: morgan@cal.com <morgan@cal.com> * optimize: reuse UserRepository instances within same function scope - Create single UserRepository instance per function scope - Reuse instance for multiple method calls within same function - Reduces object instantiation overhead and improves performance - Apply optimization pattern consistently across codebase Co-Authored-By: morgan@cal.com <morgan@cal.com> * fix: repository * fixup! fix: repository * fixup! fixup! fix: repository * fixup! fixup! fixup! fix: repository * fix: update test mocking strategies for UserRepository dependency injection - Convert static method mocks to instance method mocks in userCreationService.test.ts - Update vi.spyOn calls to work with constructor injection pattern in getAllCredentials.test.ts - Fix UserRepository mocking in getRoutedUrl.test.ts to use constructor injection - Ensure consistent mocking approach across all test files - Fix 'UserRepository is not a constructor' errors in tests Co-Authored-By: morgan@cal.com <morgan@cal.com> * feat: optimize UserRepository instance reuse and add SessionUser type - Reuse UserRepository instance in OrganizationRepository.createWithNonExistentOwner - Add comprehensive SessionUser type definition for type safety - Improve type constraints in enrichUserWithTheProfile and enrichUserWithItsProfile - Ensure proper return types with profile information Co-Authored-By: morgan@cal.com <morgan@cal.com> * fix: make UserRepository mocking strategy more robust for CI environments - Add defensive checks for vi.mocked() to handle CI environment differences - Ensure mockImplementation is available before calling it - Maintain consistent mocking pattern across all test files - Fix 'Cannot read properties of undefined' error in CI Co-Authored-By: morgan@cal.com <morgan@cal.com> * fixup! fix: make UserRepository mocking strategy more robust for CI environments * refactor: convert direct UserRepository instantiations to two-step pattern - Change await new UserRepository(prisma).method(...) to const userRepo = new UserRepository(prisma); await userRepo.method(...) - Optimize instance reuse within same function scopes - Apply pattern consistently across all modified files in PR - Fix type errors in organization.ts and sessionMiddleware.ts Co-Authored-By: morgan@cal.com <morgan@cal.com> * refactor: complete two-step UserRepository pattern for remaining files - Apply two-step instantiation pattern to all remaining modified files in PR - Ensure consistent UserRepository usage across entire codebase - Maintain instance reuse optimization within function scopes Co-Authored-By: morgan@cal.com <morgan@cal.com> * chore: bump platform libs --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: morgan@cal.com <morgan@cal.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> |
||
|
|
4920abdaf7 |
feat: optimize Prisma queries by replacing findFirst with findUnique where applicable (#21826)
* feat: optimize Prisma queries by replacing findFirst with findUnique where applicable - Replace findFirst/findFirstOrThrow with findUnique/findUniqueOrThrow for queries using unique constraints - Maintain existing functionality and error handling behavior - Focus on queries using primary keys and unique index fields from schema - Revert problematic changes that caused test failures to maintain stability Co-Authored-By: benny@cal.com <benny@cal.com> * revert: exclude API files from Prisma query optimizations per user request - Reverted all 55 API-related files to their original state - Kept all non-API Prisma query optimizations intact - API files include apps/api/v1, apps/api/v2, apps/web/app/api, and packages/app-store/*/api - Non-API optimizations remain for packages/lib, packages/features, apps/web (non-api), etc. Co-Authored-By: benny@cal.com <benny@cal.com> * feat: optimize membership query in attributeUtils to use findUnique with userId_teamId constraint Co-Authored-By: benny@cal.com <benny@cal.com> * revert: exclude test files from Prisma query optimizations per user request Co-Authored-By: benny@cal.com <benny@cal.com> * revert: revert attributeUtils.ts to use findFirst for test compatibility Co-Authored-By: benny@cal.com <benny@cal.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: benny@cal.com <benny@cal.com> Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> |
||
|
|
5bb2a904ce |
refactor: Deprecate Legacy v2 Booker Atom Endpoints (#20939)
* feat: split atoms endpoints and add public event type endpoint * Update ConnectedDestinationCalendars import path across platform/atoms components * refactor: update BookingResponse import path from platform-libraries to features/bookings * Move AvailableSlotsType to util.ts and update imports to use GetAvailableSlotsResponse * Refactor import path for RecurringBookingCreateBody type from libraries to types * Fix import path for getBookingForReschedule type from platform-libraries to features * Refactor PublicEventType export location and update import references * Remove @calcom/platform-libraries dependency from atoms package.json * chore(deps): update yarn.lock dependencies * Remove console.log statements and fix indentation in event type hooks * Migrate event type transformers from platform/libraries to api/v2 directory * Remove console.log * Update BookerPlatformWrapper.tsx * Add script to populate empty team slugs with slugified team names * Remove vitest imports * reset platform libraries version * Remove unused orgId comment from useAtomGetPublicEvent hook params * Update useApiV2AvailableSlots.ts * refactor: remove unused exports from lib package index file * Undo: @SomayChauhan Add script to populate empty team slugs with slugified team names * Update booking.tsx * chore: upgrade @calcom/platform-libraries from 0.0.202 to 0.0.205 * chore: bump @calcom/platform-libraries from 0.0.205 to 0.0.206 * chore: configure babel and jest for node module transpilation in api v2 * fix: type errors * Revert "chore: configure babel and jest for node module transpilation in api v2" This reverts commit b2cf172a84fe8953f9497bf6e43874f476fbc04b. * Update calendars.service.ts * chore: bump @calcom/platform-libraries from 0.0.208 to 0.0.209 * fix: add proper type definition for calendar busy times to resolve ts-expect-error * refactor: deprecate v2 old availability endpoints (#21075) Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> * chore: publish platform librareis * feat: add delegation credential fields to calendar service mock * chore: update @calcom/platform-libraries from 0.0.211 to 0.0.213 * fix: skip failing calendar integration test * chore: bump @calcom/platform-libraries from 0.0.213 to 0.0.214 * fix: api/v2 build error * fix: e2e tests --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: supalarry <laurisskraucis@gmail.com> Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com> |
||
|
|
ef1844557f |
fix: Host schedule not updating upon updating/deleting default schedule (#20750)
* fix: host schdule not updating * Update util.ts * tweak * Update delete.handler.ts * add test * update * Update util.test.ts |
||
|
|
df75df7008 |
fix: DelegationCredential - Duplicate GoogleMeet and unnecessary serviceAccount key access (#21269)
* Remove unused return statement * Fix return from fn instead of continuing the loop * Ensure userId is set for existing records on update * ensure that serviceAccountKey is only retrieved whenb assked |
||
|
+8 |
3bc9fa11d0 |
chore: remove @calcom/lib barrel file (#21267)
* refactor: replace imports from @calcom/lib barrel file with direct imports Co-Authored-By: benny@cal.com <benny@cal.com> * fix: add deprecated barrel file with warning to support tests Co-Authored-By: benny@cal.com <benny@cal.com> * remove barrel file * fix: restore barrel file with deprecation notice and add CreditType enum export Co-Authored-By: benny@cal.com <benny@cal.com> * fix: add CreditType enum definition to barrel file Co-Authored-By: benny@cal.com <benny@cal.com> * fix: add mock for CreditType enum in credit-service test Co-Authored-By: benny@cal.com <benny@cal.com> * fix: use importOriginal in CreditType enum mock Co-Authored-By: benny@cal.com <benny@cal.com> * fix: remove barrel file completely Co-Authored-By: benny@cal.com <benny@cal.com> * fix: restore barrel file with deprecation notice to support tests Co-Authored-By: benny@cal.com <benny@cal.com> * fix: update test-setup to use direct import from @calcom/ui/classNames Co-Authored-By: benny@cal.com <benny@cal.com> * fix: completely remove barrel file Co-Authored-By: benny@cal.com <benny@cal.com> * fix: update package.json to remove references to index.ts Co-Authored-By: benny@cal.com <benny@cal.com> * fix: remove main and types fields from package.json Co-Authored-By: benny@cal.com <benny@cal.com> * fix: restore barrel file with deprecation notice to support tests Co-Authored-By: benny@cal.com <benny@cal.com> * remove barrel file * fix --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: benny@cal.com <benny@cal.com> Co-authored-by: hbjORbj <sldisek783@gmail.com> |
||
|
|
b89ff43921 | chore: Remove @calcom/lib/schedules barrel file (#21266) | ||
|
|
605304b93b |
fix: availability view error (#21115)
* fix: avaiability view error * Update list.handler.ts |
||
|
|
e3bd90c4f2 |
fix: Handle calendar-cache with Delegation Credentials
Fixes CAL-5372 # Delegation Credentials with CalendarCache. Following content is a snapshot of the [internal document](https://calendso.slack.com/docs/T08B8KA2BNF/F08L5JYU3V3) **Problem-1 :** CalendarCache needs SelectedCalendar records to work but SelectedCalendar record is only created when a user connects their calendar and then enables some calendar for conflict checking. Because with Delegation, no manual connection is done by any of the members, we need a way to create SelectedCalendar records automatically. **Problem-2** CalendarCache connects to credential(regular credential) which doesn’t exist for Delegation Credential scenario. Also, DelegationCredential is common for all the members(different from Credential which is different for different members) of the organization and we need to identify to which user the CalendarCache belongs. **Solution for both problems** - Create credential records for Delegation Credentials as well - Through Cron(new - we could schedule it every 5mins) - Now create SelectedCalendar records for those Credential records - Through another Cron(new - we could schedule it every 5mins) - Now CalendarCache records will automatically be created for those SelectedCalendar records -existing cron ## Fixed some Delegation Credentials bugs unrelated to calendar-cache - If DestinationCalendar wasn't set(which is possible only with Delegation Credentials), then Google Meet wasn't used as a conferencing app - [Added a test] - If no SelectedCalendar is there but Google Calendar connection exists(possible only with Delegation Credential) then we were not doing conflict checking. It is expected to not do it for Regular Credentials, but for Delegation Credential we must check for conflict in that case too [Added a test] - Earlier if a user has Regular Credential as well as Delegation Credential for the same external id which is the member email(say member1@acme.com) then availability were retrieved twice because we weren't deduplicating credentials as it wasn't a trivial thing to do. Now that is being done. **Env Variables:** Note this PR doesn't introduce any new env variable. The existing env variable has been added to .env.example. But if this env variable isn't already set, it must be set. `CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY={SAME_AS_SET_FOR_V2_API}` **Deployment Plan:** 1. Add Observability for SelectedCalendar when _error_ field is set 2. Follow https://github.com/calcom/cal.com/blob/calendar-cache-dwd-support/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/delegation-credential/delegation-credential.md#setting-up-delegation-credential-for-google-calendar-api to enable Delegation Credential for i.cal.com 3. Note that to be able to see the option to enable Delegation Credential for an organization, you need to enable `teamFeature` and `feature` for `delegation-credential` ## Automation Tests - Introduced tests for calendar-cache.repository.ts - Tests all methods of the repository - Added more tests for handleNewBooking/delegation-credential flow. - Added test to verify the bug fix when no DestinationCalendar exists and Google Meet should be used still - Added more tests for Google Calendar/CalendarService targeting DelegationCredential - Added more tests for getCalendarsEvents. - To test the new logic of calling getAvailability still if there are no selectedCalendars in case of Delegation Credential - Also introduced tests for `getAvailabitlityWithTimezones` which was an existing function but now has some new changes. - Added tests for deduplication logic in CalendarManager.ts ## How to Test Enable Calendar Cache and Delegation Credential feature for acme org through `features` and `teamFeatures` tables. - Enable Delegation Credential for acme org - Enable atleast 1 calendar for conflict checking for one of the users(say owner1) - Ensure GOOGLE_WEBHOOK_TOKEN is set in .env file - Ensure GOOGLE_WEBHOOK_URL is set to ngrok url of webapp in .env file - Hit cron endpoint `curl http://localhost:3000/api/calendar-cache/cron\?apiKey\={API_KEY}` that would cache the freebusy result for the selected calendars Followup - https://github.com/calcom/cal.com/pull/20698 - https://github.com/calcom/cal.com/pull/18619/files#r2046795643 |
||
|
|
d81b905ad7 |
refactor: replace timeZone string validation with timeZoneSchema (#20719)
* refactor: replace timeZone string validation with timeZoneSchema - Replace all instances of timeZone: z.string() with timeZoneSchema - Preserve modifiers (.optional(), .default(), .nullish()) where present - Fix VideoApiAdapter to use organizer's timezone value - Remove redundant isSupportedTimeZone import from booking.ts - Add timeZoneSchema import where needed * Update index.ts * fix: conflicts Signed-off-by: Omar López <zomars@me.com> * Update yarn.lock * Discard changes to yarn.lock * Update booking.ts * Discard changes to packages/platform/types/me.ts * Discard changes to packages/platform/types/me/outputs/me.ts * Discard changes to packages/platform/types/schedules/schedules-2024-04-15/schedules.ts * Discard changes to packages/features/ee/cal-ai-phone/zod-utils.ts --------- Signed-off-by: Omar López <zomars@me.com> |
||
|
|
6615b885d1 |
chore: Make app compatible with Fluid Compute (#19841)
* chore: Make app compatible with Fluid Compute * Removed isCold from me api endpoint * chore: Remove handler caching for Fluid Compute compatibility (#20692) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: keith@cal.com <keith@cal.com> * fix client_id issue * chore: Remove UNSTABLE_HANDLER_CACHE for Fluid Compute compatibility (#20694) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: keith@cal.com <keith@cal.com> * Fixing types * Fixing type issues * chore: Remove importHandler references for Fluid Compute compatibility Co-Authored-By: keith@cal.com <keith@cal.com> * chore: Remove importHandler references from attributes router for Fluid Compute compatibility Co-Authored-By: keith@cal.com <keith@cal.com> --------- Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: keith@cal.com <keith@cal.com> |
||
|
|
3c1297aa72 |
fix: calcom trpc sessio circle dep (#19893)
* fix trpc session circle dep * fixes trpc session cirlce dep * fix relative imports * fix more imports to use types and not trpc * fix exports * Fixed types --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com> |
||
|
|
524c0d81a7 |
chore: rename DWD to DelegationCredential (#19744)
* Revert "Revert "chore: rename DWD to DelegationCredential (#19703)" (#19734)"
This reverts commit
|
||
|
|
d79a5c3adf | fix: search on team availiability (for non-org users) (#19738) | ||
|
|
340b5ab061 |
Revert "chore: rename DWD to DelegationCredential (#19703)" (#19734)
This reverts commit
|
||
|
|
7a9ddf2194 |
chore: rename DWD to DelegationCredential (#19703)
* chore: rename DWD to DelegationCredential * fixup! chore: rename DWD to DelegationCredential * fixup! fixup! chore: rename DWD to DelegationCredential * fixup! Merge branch 'main' into rename-domain-wide-delegation * fixup! fixup! Merge branch 'main' into rename-domain-wide-delegation * fixup! fixup! fixup! Merge branch 'main' into rename-domain-wide-delegation |
||
|
|
7180eb067a |
refactor: Move @calcom/core to @calcom/lib (#19655)
* refactor: Move @calcom/core to @calcom/lib * Merging imports * Clean up * Ignoreing type error for now |
||
|
|
be77ac133c |
feat: Domain-wide delegation for Google Calendar and Google Meet (#16622)
* Add endpoints for testing the flow * Add MVP * new route * Fixes * Fixes * Remove enable toggle support from domainWideDelegation * Fixes * Revert "Remove enable toggle support from domainWideDelegation" This reverts commit c29e729206cd1fa063f9c9ce0cf148ef1577d60b. * Revert yarn.lock * More fixes * Fix new workspace platform add * refactor: improvements * refactor: bug fixes and improvements * fix: type errors * fix: conflicts * chore: update test * fix: logic * chore: improvements * fix: toglle * fix: bugs * fix: type err * chore: check number type * fix: after conflicts * chore: fix type err * fix: type errors and tests * fix: tets * test * chore: remove unused * fix: google meet url on booking page and secondary calendar * fix: add property * fix: type err * fix: re assingment bug * fix: use getAllCredentials * chore: fix import * fix: installed count * fix: pass event type * fix: import * fix: [Stacked PR] Review fixes (#17958) * Review fixes * fix: destination calendar bug --------- Co-authored-by: Udit Takkar <udit222001@gmail.com> * refactor: use repository * chore: remove duplicate * fix: More review fixes for domain wide delegation (#17969) * Reuse buildCredentialPayloadForCalendar * fixes --------- Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * fix ts error * Fix getSchedule not using dwd credentials (#17995) * fix: Remove direct DWD table access from google-calendar and remove delegatedToId column from Credential (#18015) * Remove fn rename to reduce number of files changed * chore: check feature globally * test: add unit tests * chore: move function * test: add booking test * wip * Remove domain-wide-delegation team feature flag * Make sure duplicate calendars are not shown due to DWD. Show DWD when there is conflict * Fix tests and their ts errors * Fix more tests * Move findUsersForAvailabilityCheck to separate file as it has AppStore dependency causing problem with Routing Forms. Build crashes * fix: Multiple calendar connections from Google not showing up in apps/installed * DestinationCalendar must have either credentialId or domainWideDeelgationId. Also handle the case when DWD is disabled and there was a non-dwd credential that could be used * Disable deletetion of DWD as it is destructive and prefer disabling instead * Show DWD credential calendars at the top * Fixed tests * Calendar Cache DWD support * Self-Review: Verify email required and add more selectedCalendar tests * Self Review: shorten names * Self ReviewL Dead code removal * Revert "Calendar Cache DWD support" This reverts commit 009f236470fa21eba5986117d4f6e4d4c5e38c34. * Some misc fixes * fixes * Performance improvememt in slots loading and booking * More cases for handling dwd credentials * simplify the logic. Ensure that EventManager and the modules below it in the flow have CredentialForCalendarService available * Fix tests * Fix installed/conferencing not showing gogole meet * Shorten name * Fix ApI v2 tests * Add some more tests * add getSchedule tests * Improve tests * Make Google Meet default when DWD for google is enabled * Enable feature flagging for DWD * chore: bump libraries * Encrypt serviceaccount private key * Fix ts errors * bump platform libraries * org add dwd * org add dwd * bump platform libraries * fix selected calendars * fix remove selected dwd calendar * remove oauthclient id aliad in authedCalendar * remove oauthclient id aliad in authedCalendar * refactor: OrganizationsDwdController * chore: export toggleDwdEnabled from platform-libraries * feat: v2 update (enable / disable) dwd * refactor: SelectedCalendarsController check if user belongs to dwd org & for not dwd use previous logic * wip: DestinationCalendar send domainWideDelegationCredentialId from frontend to api * try fix set destination calendar api v2 * fixup! try fix set destination calendar api v2 * setting google meet as default location working for dwd * bump platform libraries version * allow office 365 workspace slug * allow office 365 workspace slug * chore: v2 create dwd MS and Google service keys input * fix: CreateDwdInput serviceAccountKey * fix: CredentialForCalendarService type * fix: check workspace slug * feat: update serviceAccessKey of DWD * testing * fixup! testing * fix: getAuthUtl bug * fix: unit tests * fix: type err and unit test * fix: e2e test * fix: credentials bug and failing unit tests * Update CalendarService.ts * chore: refactor office365 calendar service and add testDomainWideDelegationSetup * fix: office365Calendar use correct clientId/Secret for DWD * fix: office365Calendar dwd no need refresh token * test: add unit test for outlook dwd and setup * feat: added dwd support for office365 calendar * feat: added dwd support for office365 video * test: finish test for outlook dwd * fix: create dialog bug * chore: remove console logs * fix: refreshToken bug * bump version libraries * refactor: fetch dwd credentials only in findQualifiedHosts * fixup! refactor: fetch dwd credentials only in findQualifiedHosts * fix: type err * fix: type err * fix: getUserDisplayName * fix: unit test * chore: bump platform lib --------- Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Udit Takkar <udit222001@gmail.com> Co-authored-by: Morgan Vernay <morgan@cal.com> Co-authored-by: supalarry <laurisskraucis@gmail.com> Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> |
||
|
|
f28c605b50 |
fix: bulk-update-in-scheduleId-in-detailed-view (#19295)
* fix: bulk-update-in-scheduleId-in-detailed-view * minor-change --------- Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> |
||
|
|
d8027fe248 |
Fix duplicated data returned by Prisma query in team availability view (#18416)
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> |
||
|
|
cb1f803d0a |
feat: ooo calibration (#17864)
* first version of ooo calibration * decrease precision when checking for full day event Co-authored-by: Alex van Andel <me@alexvanandel.com> * improve variable naming * don't include hosts created after OOO * fix failing tests * fix all tests * add test for ooo calibration * first implementation to fix full day busy event reaching the current month * allow mutiple day events * make getAvailabilityWithTimeZones optional * fix type error * fix type errors * fix tests * fix type error * fix test * code clean up * remove time adjustment from map * code clean up * fix tests * getAllCalendars -> this.getAllCalendars * fix typo * extract mergeOverlappingRanges * code improvements from feedback * fix getCalIdsWithTimeZone --------- Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Benny Joo <sldisek783@gmail.com> |
||
|
|
4976e24e12 |
fix: move team availability search to serverside (#17549)
* move search to severside * transform zod stirng to lowercase |
||
|
|
ed6d88e30f |
perf: Allow bypassing 3rd party calendar busy times (#17492)
* perf: Allow bypassing 3rd party calendar busy times * Fix typing issues * Fixed API v1 build * Another fix for API v1 |
||
|
|
a48d190af3 |
feat: #15416 Expand round robin availability beyond default schedule (#15618)
* add feature to change host schedule * update for type-check:ci * Update SingleForm.tsx for linterr * update as per design review * update for rerendering * migration files * On Delete set null for schedule if schedule is deleted, no need to delete the host * updated schema * added testcases * checking permissions before * updated for comments * update for initial value * updated and cleanup * set initial value * update after merge * updated nit style * update for console warning and added comments * nit/chore * chore * update for typechecks * update for scheduleId param after merge * update after merge or new changes in metadata.config * update after weights functionality * updated description text and column name as per review suggestion * resolved merge conflicts * fix typecheck due to changes in getScheduleSchema * update after merge having refactor * update refactored EventTypeWebWrapper after merge * updated props * updated trpc err code and added log * update due to refactor in EventAvailabilityTab * perf: Optimise TS type + select only the data that's needed for a specific function --------- Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com> Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> |
||
|
|
d9777a3011 |
perf: Server-Side Data Fetching in App Router: /availability (#16536)
* wip * add method to OrganizationRepository * server side fetching for availability * fix error * server side fetching finish * remove log * fix * fix * fix type * no need to export * fix type * address nit comments |
||
|
|
68ce9524eb |
refactor: v2 schedules (#15403)
* refactor: platform-types schedule types * refactor: lib add bidirectional schedule transformers api <-> atom * refactor: trpc handlers use renamed lib transformers * refactor: platform-libraries export new bi-directional transformers * chore: v2 update platform-libraries * chore: enable also old platform-libraries * fix: platform-types support previous types * refactor: versioning date * chore: version old schedules as schedules_2024_04_15 module * chore: version old schedules as schedules_2024_04_15 module * feat: new 2024_06_11 schedules module * feat: atoms use refactored schedule api * refactor: remove ?for=atom in schedules hooks * fix: unit test |
||
|
|
5ee3744015 |
Revert "refactor: api v2 schedules (#14870)" (#15130)
This reverts commit
|
||
|
|
c25c835b76 |
refactor: api v2 schedules (#14870)
* api: createSchedule refactor - still need to handle overrides * createSchedule: handle overrides * createSchedule: default schedule e2e test fix and pad hours:minutes * get default schedule, by id and all schedules * update schedule * refactor: update handler delete only if overrides or availabilities given * remove comment * refactor: move schedules inputs, outputs to platform-types + e2e tests refactor * refactor e2e * fix: overrides and test * fix managed user create * my brain is fried but refactor good * WIP: transform api schedule for atom * WIP: transform api schedule for atom * WIP: transform api schedule for atom * fix: re-export atom transformer from lib * fix: format schedule for api from atom * fix ts ignore * refactor: move schedule hooks into hooks/schedules * feat: useSchedules hook to get count of user schedules * tests: setup atom tests & test transformScheduleForAtom * rename transformers * test transformAtomScheduleForApi * reset scheduel update handler for trpc * fix: import path * refactor: transformers * swagger docs fix * get rid of unused availabilities module * get rid of eslint-disable-next-line in schedules repository * refactor: remove crypto from atoms vite rollupOptions * refactor: comment schedules repository update logic |
||
|
|
19d938ed60 |
feat: travel schedules to schedule timezone changes (#14512)
* add Travel Schedule modal * UI to list schedules * set shouldDirty * add backend to add new travelSchedule * implement deleting a schedule * check if schedule is overlapping * WIP * fix finding overlapping travel schedule * only use travelSchedule when default availability is used * adjust date overrides to timezone schedule * first version of changeTimeZone cron job * fix tests by adding travelSchedules * fixes for cron job api call * improve unit tests * add migration * fix type error * fix collective-scheduling test * clean up cron job * code clean up * code clean up * show timezone from travel schedule for date override * add date override tests * show tz on date override only in default schedule * fix deleting old schedules * minor fixes in cron api handler * code clean up * code clean up from feedback * fix asia/kalkota comment * fix dark mode * fix start and end date conversion to utc * add first unit test for travel schedules * Fix modal render issue * show timezone city wtihout _ * fix dark more for datepicker * reset values after closing dialog * remove session from middleware * exit loop early once schedule is found * fix type error * add getTravelSchedules handler * clean up DatePicker * fix type error * code clean up * code clean up * add indexes * use deleteMany * fix icons --------- Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> |
||
|
|
7b0321043d |
fix: OOO for team events (#14503)
Co-authored-by: CarinaWolli <wollencarina@gmail.com> |
||
|
+25 |
0a15483c46 |
feat: platform atoms + api v2 (#14106)
* add connect to cal atom * add connect to cal to atoms package index * shadcn setup * update packages * button component from shadcn * dumb button component * replace button with dumb button component * update commenst and change url param * chore: setting up monorepo packages for platforms (#12572) * chore: init platform folders strucutre and api proxy * fixup! chore: init platform folders strucutre and api proxy * chore: init database oAuth platform client schema * fixup! chore: init database oAuth platform client schema * fix config path after move to folder /v1 * feat: scaffold v2 API (#12554) * init nest project * add kysely as a separate package * add ee folder with license * prettier: format v2 api same as mono repo * migrate over Eriks nestjs poc * schema generation script * ee license file * nest poc eslint file * remove prisma-kysely from v2 api * prepare for mergin platform: remove prisma-kysely because incorrect checksum * add prisma-kysely to packages/prisma * move to apps/api/v2 * rename v2 package * readme update * Update apps/api/v2/env.example * env typo * env typo --------- Co-authored-by: Erik <erik@erosemberg.com> Co-authored-by: Morgan Vernay <morgan@cal.com> * chore: init platform packages (#12603) * chore: init platform packages * fixup! chore: init platform packages * fixup! fixup! chore: init platform packages * fix: type in package.json * fixup! fixup! fixup! chore: init platform packages * fixup! fixup! fixup! fixup! chore: init platform packages * fixup! fixup! fixup! fixup! fixup! chore: init platform packages * fixup! fixup! fixup! fixup! fixup! fixup! chore: init platform packages --------- Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com> * chore: platform more permissions utils and tests (#12613) * chore: more permisions utils and tests * chore: tests * feat: validate `CalProvider` api keys (#12672) * fix: signup nit (#12585) * Disable submit on empty form * Fix submit --------- Co-authored-by: Peer Richelsen <peeroke@gmail.com> * New Crowdin translations by Github Action * fix: Signup options are not disabled (#12610) * fix: Signup options are not disabled * fixes/signup disabling suggested changes done * chore: signup and login improvements --------- Co-authored-by: Udit Takkar <udit222001@gmail.com> * fix: typo in @calcom/emails readme (#12615) * fix: handle reschedule request for dynamic meetings (#12275) * chore: [app-router-migration-1] migrate the pages in `settings/admin` to the app directory (#12561) Co-authored-by: Dmytro Hryshyn <dev.dmytroh@gmail.com> Co-authored-by: DmytroHryshyn <125881252+DmytroHryshyn@users.noreply.github.com> Co-authored-by: zomars <zomars@me.com> * chore: added cursor-pointer to img upload (#12624) * added cursor-pointer to img upload * nit * feat: add clear filters option in bookings page (#12629) * add clear filters option * fix vscode settings.json * use removeAllQueryParams() * fix yarn lock * remove toggleoption * feat: display long durations in hours on booking (#12631) Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * New Crowdin translations by Github Action * fix: workaround for future app dir routes * feat: Allow only first slot to be booked (#12636) Co-authored-by: Morgan Vernay <morgan@cal.com> * New Crowdin translations by Github Action * feat: add matomo analytics app (#12646) * chore: Sentry Wrapper with Performance and Error Tracing (#12642) * add wrapper for sentry and update functions in 'getUserAvailability'. Update tracesSampleRate to 1.0 * Make Sentry Wrapper utilize parent transaction, if it exists. * Update wrapper for functions to inherit parameters from the child function * add comment of when to use the wrapper * check for sentry before wrapping, if not call unwrapped function * refactored wrapper to have async and sync separate functions that utilize helpers for common behaviour * update type of args to unknown * fixed types of returns from wrapped functions --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> * validate api keys to set error and key states for api keys * organize error messages into one place * set error messages from errors file instead of hardcoding value * fix incorrect constant name --------- Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: Pratik Kumar <70286186+Pratik-Kumar-621@users.noreply.github.com> Co-authored-by: Udit Takkar <udit222001@gmail.com> Co-authored-by: Samyabrata Maji <116789799+samyabrata-maji@users.noreply.github.com> Co-authored-by: Manpreet Singh <manpoffc@gmail.com> Co-authored-by: Benny Joo <sldisek783@gmail.com> Co-authored-by: Dmytro Hryshyn <dev.dmytroh@gmail.com> Co-authored-by: DmytroHryshyn <125881252+DmytroHryshyn@users.noreply.github.com> Co-authored-by: zomars <zomars@me.com> Co-authored-by: Varun Prahlad Balani <varunprahladbalani@gmail.com> Co-authored-by: Mike Zhou <mikezhoudev@gmail.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Haran Rajkumar <haranrajkumar97@gmail.com> Co-authored-by: Morgan Vernay <morgan@cal.com> Co-authored-by: Harshith Pabbati <pabbatiharshith@gmail.com> Co-authored-by: Brendan Woodward <73412688+bwoody13@users.noreply.github.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> * fix: storybook atom import * feat: oauth clients management (#12604) * feat: oAuth create and update dtos * feat: WIP oAuth repository * feat: oAuth controller and module * refactor: rename cal oAuth to simply oauth * fix: controller update client * add oAuth client module to endpoints module * refactor: OAuthClientRepository * refactor * status codes for controller * oauth create return * fix: oAuth client only for v2 API * remove repository as provider from its module * fix: oAuth module, have repository in providers * fix: make endpoints run * comment out oauth prisma schema code: coming next * refactor: remove api-key authguard (#12675) * chore: Prisma exception filters (#12679) * fix: get prisma schema from package @calcom/prisma (#12692) * fix: get prisma schema from package @calcom/prisma * fixup! fix: get prisma schema from package @calcom/prisma * fixup! fixup! fix: get prisma schema from package @calcom/prisma * fix: prettier config * fixup! fix: prettier config * chore: create authenticated user guard (#12677) * chore: wip next-auth-guard for apiv2 * refactor: use NextAuthGuard on all OAuthClientController routes * refactor: use passport to get next user * exclude password from prisma read service * Revert "exclude password from prisma read service" This reverts commit 24b1f8ed59f6d99f0ecc589c691efb0ac1f2ac3b. * fix: userRepo sanitize password * refactor: function order in UserRepository * implement user repository service * refactor: strict null checks for TS * refactor: fix strict null checks * delete res locals type * refactor: switch from zod to class-validator for oAuth client * refactor: switch from zod to class-validator for booking * refactor: rename dtos folder to input folder * fix: create migration for prisma schema oauth clients table * feature: post oAuth client * refactor: rename oAuth client_secret to secret * stricter ts config + oauth secret * remove migrations * fix: improve response type * improve error code types * fix: prettier by removing eslint as its not needed * refactor: eslint fix files * wip organization oauth_lcient * fix import types * fix team schema platformOAuthClient name * fix: import packages transpiled * feat: roles guard * refactor: use organisationId instead of userId * fix: jwt secret signing not having jwt_secret * fix: stop importing input DTOs as types * fix: jwt sign expecting plain object * add sentry, routes logger, generic response type * fix test config * fixup! fix test config * refactor: dont await async function return * feat: fallback value for getEnv * feat: add helmet for security * feat: organization guard * refactor: check if user set in RolesGuard * refactor: remove roles requirement for oauth read * chore: add exceptions filters * fix: api key strategy throws errors * chore: set e2e tests * chore: centralize api type in package * feat: user repository relations * feat: user repository relations * Revert "feat: user repository relations" This reverts commit 1802b256b5a6e5c9b6a62138c8cb1b6f75ed401b. * Revert "feat: user repository relations" This reverts commit 4a8f52583d95ff15b6254694c976d8ec9ce0e546. * test: mock next auth * fixup! test: mock next auth * test:oAuth authed user but no org * refactor: remove unused type * refactor: organisation guard based on Membership table * refactor: folder and file structure * fix: small changes exception filters * refactor: merge organization and roles guards into one guard * fix: remove old export * fix: org roles guard --------- Co-authored-by: supalarry <lauris.skraucis@gmail.com> * chore: OAuth clients tests and fixes (#12762) * chore: add tests and fixes * fixup! chore: add tests and fixes * fixup! fixup! chore: add tests and fixes * fixup! fixup! fixup! chore: add tests and fixes * fixup! fixup! fixup! fixup! chore: add tests and fixes * fixup! fixup! fixup! fixup! fixup! chore: add tests and fixes * fixup! fixup! fixup! fixup! fixup! fixup! chore: add tests and fixes * fix: remove unused imports * chore: move repos to feature folder (#12769) * chore: rename repositories * fix yarn.lock * feat: oauth client guard (#12814) * feat: oAuth client guard * refactor test * refactor: move oauth-client guard to oauth module * refactor: separate jest config from package.json * fix: resolving paths in jest tests * fix: tests * jest setup file * fix: jest test warnings about .js platform constants imports * refactor: test repository fixtures * remove allowjs * ignore js files in ts-jest * make oauth client module global * make oauth client module global * feat: platform oAuth clients frontend (#12867) * add oauth client to settings * fix imports * add react and axios * oauth client form and card components * hooks for oauth clients data * index page for oauth clients * oauth client list component * oauth client form page * shift atoms into platform * init platform folder * refactor handleSubmit functioin * platform * platform * platform parts * revert tsconfig constant platform * fix: useOauthClients * feat: create oauth client with api * fix: add prettier to platform type package * fixup! fix: add prettier to platform type package * chore: class-validator types in platform package * add types for delete oauth client iput * add onSuccess and onError methods * update oauth client card view with client id and secret * cleanup comments * split oauth persisit hook into create and delete hooks * fix: oauth client creation / deletion / listing * fixup! fix: oauth client creation / deletion / listing * fix: comment logo for now * fix: layout setting org keys * cleanup comments * minor style fixes, add logic for client permissions * show toast after deleting client * not passing clint logo at the moment --------- Co-authored-by: Morgan Vernay <morgan@cal.com> * chore(platform): OAuth Flow (#12798) * fixup! chore(platform): OAuth Flow (#12798) * feat: CRUD for oAuth users (#12853) * user controller with oauth guard * crud repository and controller operations * add user controller to user module * refactor: oauth guard * connect user with oauth client upon creation * fix: test * wip: e2e test * refactor: findUniqueOrThrow -> findUnique user * test: POST user request * feat: permissions guard * e2e tests * e2e * e2e refactor * e2e refactor * reflector decorator check refactor * refactor oauth guard * remov unused imports * log message * delete permissions decorator and guard * remove delete user endpoint * remove delete user endpoint * refactor: route structure * remove get oauth client decorator * delete unecessary e2e config changes * remove set header in post test * fix: oauth guard test on empty db * revert: add previously removed constant to fulfill merge platform * fix: import to satisfy platform branch merge * use real implementation of access token guard * generate access & refresh tokens and fix e2e * fix: oauth client e2e test * refactor: variable naming * refactor * rename test file * remove oauth client from request * refactor: v2 API (#12913) * Use Boolean only instead of git add src/modules/auth/guard/organization-roles/organization-roles.guard.ts * move tests next to files they test * replace .. in import paths with absolute path * camelCase instead of snake_case for access and refresh token variables * user sanitize function Typescript friendly * restructure oAuth clients folder: example for other folders * restructure bookings module * organize modules in auth, endpoints, repositories, services * organize auth module * organize repositories * organize inputs * rename OAuthClientGuard to OAuthClientCredentialsGuard * add error messages * add error messages * clientId as param in oauth-flow & schema mapping * camelCase instead of snake_case for clientId and clientSecret * access token guard as passport strategy * folder structure as features * get rid of index files * feat: endpoint for deleting oAuth users & oAuth users returned data (#12912) * feat: delete oAuth users * check if access token matches userId in parameter * driveby: return only user id and email in oauth users endpoints * refactor: access token errors (#12932) * change error messages * error message if access token does not exist in our database * token expired 498 * access token expired message as constant * store 498 status code as const * fix: access token error less information given * chore: invalid access token const --------- Co-authored-by: Morgan Vernay <morgan@cal.com> * feat: external gcal (#12954) * wip connect gcal * feat: add external google calendar * fixup! feat: add external google calendar * fix: google calendar oauth check invalid * google cal check tests * use zod * fix: await validate access token service * chore: e2e tests for oAuth flow (#13005) * fix: accessing length of undefined * refactor: GetUser throw error if no user provided * fix: cascade delete PlatformAuthorizationToken if owner or client deleted * test: POST /authorize * refactor oauth-flow controller * refactor oauth-flow controller * new function to get authorization token by client user ids * refactor token service * fix: re-created access and refresh tokens having not unique secret * oauth flow tests * oauth flow tests * feat: abstracted jwt service (#13016) * remove unused JwtModule from the auth module * feat: create abstracted jwt service * refactor: tokens module and service use new jwt service * refactor: oauth-client module and repository use new jwt service * implement Morgans requests * Basic atoms in barebone example platform apps (#13006) * example app * example app * dev move * fix: more entry points * fixup! fix: more entry points * refactor: v2 API (#12913) * Use Boolean only instead of git add src/modules/auth/guard/organization-roles/organization-roles.guard.ts * move tests next to files they test * replace .. in import paths with absolute path * camelCase instead of snake_case for access and refresh token variables * user sanitize function Typescript friendly * restructure oAuth clients folder: example for other folders * restructure bookings module * organize modules in auth, endpoints, repositories, services * organize auth module * organize repositories * organize inputs * rename OAuthClientGuard to OAuthClientCredentialsGuard * add error messages * add error messages * clientId as param in oauth-flow & schema mapping * camelCase instead of snake_case for clientId and clientSecret * access token guard as passport strategy * folder structure as features * get rid of index files * feat: endpoint for deleting oAuth users & oAuth users returned data (#12912) * feat: delete oAuth users * check if access token matches userId in parameter * driveby: return only user id and email in oauth users endpoints * Connect CalProvider and GCal * Connect CalProvider and GCal * return response interceptor to handle failed requests * handle failed requests using axios intercepter * cal provider refresh tokens, external gcal * external gcal * cal provider refresh and retries * remove console.log * refactor * ignore built atoms css * remove change to token repo * refactor * refactor * downdgrade vite of unrelated packages * move gcal endpoints to platform * gcal service * refactor: use atoms provider --------- Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com> Co-authored-by: Ryukemeister <sahalrajiv-extc@atharvacoe.ac.in> * feat: user schedule management (#13053) * platform-constants package: list of accepted schedule timezones * feat: schedules endpoint to create schedule with default availability * refactor: rename function * refactor: store userId for availabilities * feat: createSchedule endpoint * feat: get schedules/default * feat: getSchedule by id * feat: get all schedules * feat: delete schedule * feat: update schedule * check user owns schedule * empty test * define returned data on controller level not repository * define returned data on controller level not repository * Revert "define returned data on controller level not repository" This reverts commit 4c292a0f0762f58bdcad0707ad8eef7408390800. * use luxton * put availabilities out of ee * use guard on controller level * refactor * e2e test schedule creation * remove log * test * default schedule get test * update schedule test * delete schedule test * fix update test * different email for schedules e2e * driveby: fix yarn test * schedule inputs availabilities as array * re-use BaseStrategy class * feat: me endpoint v2 api (#13274) * feat: me endpoint v2 api * simplify * chore: NestJS throttling (#13011) * fix: v2 throttling setup (#13402) * fix: v2 throttling * fix: setup redis locally * move sentry files to api v1 * chore: calcom platform libraries (#13444) * fixup! chore: calcom platform libraries (#13444) * fix: fix managed users * feat: user timezone management in `CalProvider` (#13361) * hooks to fetch and update user timezone * add react query package * add logic to check for change in user timezone and update it * hook to handle timezone changes * shift timezone handling logic into separate custom hook * rename variables * rename hook to get a user * call useTimezone hook inside of cal provider * minor refactors * add variables for api endpoints * use URL constructor for creating endpoints * key prop not needed * use URL constructor for creating endpoints * chore: package json scripts * fix(atoms): fix import path of useUpdateUserTimezone * fix(atoms): build constants and fix ENDPOINTS const * feat: v2 api event type endpoints (#13449) * build platform-libraries * make getEventTypeById compatible with default PrismaClient * feat: fetch event type endpoint * handle event type not found * e2e test for GET * test * determine is user org admin for getEventTypeId correctly * prisma type like before * add negative test * POST event-type and return event-type for api and atom * POST event-type and return event-type for api and atom * feat: create default user event types when creating managed user * feat: v2 api me PUT endpoint (#13486) * add timeZone to me endpoint * feat: me endpoint PUT * reset package.json * standardize creation and updating of user * user creation: capitalize timezones and week start * default event type constants in const file * refactor: defaultTimezone Europe/London in response schema * refactor: validators * refactor: default schedule in schedules endpoints * refactor: patch instead of put * fix: getEventTypeById organizationId (#13554) * chore: transpile more libraries functions * feat: overlay calendar busy dates events (#13581) * feat: overlay calendar busy times events * fixup! feat: overlay calendar busy times events * fixup! fixup! feat: overlay calendar busy times events * fixup! fixup! fixup! feat: overlay calendar busy times events * refactor: schedules for atom (#13585) * schedules get.handler transformers as util functions * export schedule transformers from platform-libraries package * schedules for atom * refactor: schedules response service format response * remove unused injected dependency * fix: prevent duplicate calendar account linking (#13310) * fix: prevent signing up multiple times from same account * revert: lark calendar changes * credential clean up if duplicate * fix code duplication and check before credential creation * feat: useRouterQuery allow unset queryParam * feat: showToast on account duplication attempt * Small tweak to copy * Updated other calendars not to use checkDuplicateCalendar * Add account already linked to apps/installed/calendar --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> * Revert event-type profile based querying (#13588) * test: Bookings: Add more automated tests for organization (#13576) * Avoid selecting unused props * Add automated tests * Add existing user invite and booking --------- Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> * fix: organization user shouldn't be asked for payment for a premium username (#13535) Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> * chore: refactor handle new reccuring booking (#13597) * chore: refactor handle new reccuring booking * fixup! chore: refactor handle new reccuring booking * fixup! fixup! chore: refactor handle new reccuring booking * test: Create unit tests for the questions (teste2e-multiSelectQuestion) (#11569) * Remove unnecessary changes * add changes * Requested changes * Requested changes * FIx failing tests * FIx failing tests * Update regularBookings.ts * FIx failing tests * Refactor * add unit tests for all questions --------- Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> * fix: update valid_for_secs (#13604) * fix: Fixes teams UI load issue (#13593) * fixes teams uiload issue * revert: yarn.lock --------- Co-authored-by: Udit Takkar <udit222001@gmail.com> * chore: upgrades boxyhq jackson (#13477) * chore: upgrades boxyhq jackson * Update jackson.ts reduces bundle size * Update yarn.lock * Update apps/web/next.config.js * Upgrades again --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com> * upgrades copycat * feat: PLA-47 Reserve Slots Handler (#13607) * PLA-44 feat: Platform getPublicEvent (#13596) * chore: getPublicEvent * chore: fix * feat: booker atom bookings platform endpoints (#13613) * feat: handle new booking * wip * feat: handle recurring and instant booking * fixup! feat: handle recurring and instant booking --------- Co-authored-by: Peer Richelsen <peeroke@gmail.com> * fix: v2 not running (#13636) * fix: import from platform-libraries instead of lib * fix: typescript error * fix: provide EventTypesRepository to SlotsService * fix: small change * Merge branch 'main' into platform * fix: make v2 run after user model changes (#13653) * feat: event type atom user connected and destination calendars endpoint (#13559) * extract connected calendars logic in re-usable platform-libraries function * extract connected calendars logic in re-usable platform-libraries function * extract connected calendars logic in re-usable platform-libraries function * calendars endpoints * enable calendars endpoint * calendars type form platform-libraries instead of lib * finish merging platform branch * fix dbWrite * fix: issue after merge platform * fix: new abstracted function export * change ee/overlay-calendars to ee/calendars endpoint * refactor: merge overlay service with calendars service * ts fix * body -> query * chore: Platform get schedule (#13696) * chore: get available slots * chore: infer event type isTeam * chore: nit * chore: Delete selected slot (#13692) Co-authored-by: Morgan Vernay <morgan@cal.com> * feat: v2 endpoint for availability atom timezones (#13687) * refactor: move cityTimezones handler to lib * test: incorrect timezone when creating oauth user * refactor: standardize time zone validation * feat: schedules/time-zones endpoint returning possible time zones * refactor: @IsValidTimezone load allowed timezones dynamically * chore: split timezones to its own trpc router --------- Co-authored-by: Morgan Vernay <morgan@cal.com> * fix after merge main * feat: platform useGetPublicEvent (#13752) * feat: platform useGetPublicEvent * chore: move public event type to libraries * chore: use const for query key * fixup CalendarBusyTimesInput optional params * feat: platform use get available slots (#13756) * feat: platform use get available slots * fixup! feat: platform use get available slots * feat: platform use get connected calendars (#13757) * chore: platform enable cors (#13774) * chore: enable cors * fixup! chore: enable cors * feat: platform use get calendars busy times (#13759) * fixup! feat: platform use get calendars busy times (#13759) * feat: platform use slots hooks (#13785) * feat: platform use slots hooks * fixup! feat: platform use slots hooks * fixup! fixup! feat: platform use slots hooks * fixup! fixup! fixup! feat: platform use slots hooks * fixup! fixup! fixup! fixup! feat: platform use slots hooks * fixup! feat: platform use slots hooks (#13785) * feat: platform use create boookings hooks (#13797) * feat: `Availability Settings` atom (#13762) * styling and updating the examples app * add custom hooks for availability settings atom * update default exports * minor updates * update cal provider to use react query * availability settings atom * dialog from shadcn * navbar for examples app * add select skeleton loader in calcom ui packages * refactors * define rtl for cal provider * fox trpc call to avoid merge conflicts * fix issues caused by merges * revert changes for rtl * hook to fetch every city timezones * implement useGetCityTimezones into timezone component * minor fix * update hooks * add props and intergrate into avaialibility component * add missing await * remove logs * add comments * invalidate queries after settled * toaster from shadcn * add toaster into cal provider * implement toast on event handlers * add classnames prop to accept custom styles * passing custom styles * update packages * remove comments * fix: styling * fix: useUpdateSchedule * fixup! fix: useUpdateSchedule * wip * feat: availability setting atom * fixup! feat: availability setting atom * fixup! fixup! feat: availability setting atom * fixup! fixup! fixup! feat: availability setting atom * fixup! fixup! fixup! fixup! feat: availability setting atom --------- Co-authored-by: Morgan Vernay <morgan@cal.com> * fix: atoms import * chore: lock * fix: types * fixup! fix: types * refactor: v2 user timezones (#13944) * fix: OAuth client form improvements (#13837) * rename app to apps * fix type errors, validate redirect url and other fixes * enable user to add multiple redirect uris * add id to input to make labels clickable * translations for oauth form * improve styles, add translations and add select all button for permissions * add permissions for profile read and write * fixes * nit * use `useFieldArray` for dynamic fields --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> * refactor: check organizationId primarily on user profile (#13969) * refactor: attach movedToProfile to user * refactor: check organizationId primarily on user profile * fix: resolve TS errors to build v2 for prod (#13858) * feat: atoms typescript build (#13864) * fix: atoms typescript build * refactor: dayjs * refactor: meticulous * refactor: use vite for type generation * tsconfig * feat: given user timezone update update default schedule timezone (#13981) * refactor: standardize schedules api response * fix: schedules e2e tests * refactor: use IsTimeZone class-validator instead of custom built one * feat: validate managed user timezone * feat: update default schedule when me schedule updated * refactor: standardize v2 api returned data (#13984) * feat: V2 api swagger (#13804) * feat: v2 API swagger docs * fix: query param not showing up in docs * latest swagger.json * refactor: remove scaffolded sample endpoint * separate internal endpoints * oauth-clients and oauth flow docs only in dev * oauth-clients and oauth flow docs only in dev * create oauth client response doc * responses for oauth-clients * document development only endpoints * chore: consume auth token on exchange (#13993) * feat: docker build for v2 (#13918) * fix: resolve TS errors to build v2 for prod * WIP: api v2 docker * arg env dockerfile * wip * Revert "wip" This reverts commit 232adf5b969ef004ae907f3e85b12c2715d9b6bc. * wip * wip * fix docker * fix docker * fix docker * docker * docker * expose port 80 * feat: oauth client permissions guard (#14020) * feat: Permissions guard * feat: Permissions guard * tests * feat: use permissions guard for event types * extra permissions test * fix tests * bokings, gcal, me and schedules permissions * chore: use availability settings atom and fix useTimezone platform hook (#13934) * replace availabiilty settings with atom component * add more props for custom styles * replace intl with dayjs * review feedback fixes * fix: v2 api typescript errors (#14059) * fix: start:prod script * fix: v2 me module dependencies (#14073) * feat: check v2 request origin (#14074) * feat: check v2 request origin * drive by: remove console log in test --------- Co-authored-by: Lauris <lauris@Lauriss-Laptop.local> * fix date overrides typing issues (#14091) Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> * fix: v2 e2e tests (#14088) * fix: v2 e2e tests * fix: yarn e2e tests run 1 after another * fix gcal test --------- Co-authored-by: Lauris <lauris@Lauriss-Laptop.local> * fix: availability atom and access token origin strategy * fix: availability atom get error from unknown * feat: booker atom platform wrapper (#14036) * feat: booker atom, fix hooks * wip * feat: booker atom platform wrapper * fix conflicts * fix: build v2 internal dependencies upon v2 build * fix typing of useDeleteOAuth * fix: isplatform timezone select improt booker event meta * fixup! Merge branch 'platform' into feat-booker-atom-platform * refactor * add video call event types * disable email and set managed user names --------- Co-authored-by: supalarry <lauris.skraucis@gmail.com> * update yarn.lock * Update .prettierignore * update post install * fix: post install * fix yarn lock * fix: post install * fix: types * feat: enable user control over timezone changes and helpers for query params (#14049) * helpers to get and set value of a query paramater * add event handlers and props to figure out the timezone preference of a user * make onTimeZoneChange handler optional * fixup * fix merge conflicts * fixup * revert changes * fixup * fixup --------- Co-authored-by: Alex van Andel <me@alexvanandel.com> * fix: usetimezone import * fix: prisma client import * fix: prisma client import * fix: prisma client import * remove post install using vite * ts fix attempt: pin prisma to same version * Revert "ts fix attempt: pin prisma to same version" This reverts commit 2c309f52e3a881e2dbda4185f45e77967bef6925. * resolve v2 prisma to calcom prisma * sync v2 and typescript deps * sync atoms package * lock file updat * fix: platform web components move out of pages folder * ui: allow experimental decorators to fix ts ci error * app-store: allow experimental decorators to fix ts ci error * web: allow experimental decorators to fix ts ci error * fix: github actions v2 api secrets * add license * mock useIsPlatform for tests * fix timezone select tests * mock useLocale * fix tests * fix tests * fix tests * fix github actions * chore: temporarily disable redis (#14142) * fix: only one migration file for platform * fix api v1 files location * fix: disable apiv2 test in ci --------- Co-authored-by: Ryukemeister <sahalrajiv-extc@atharvacoe.ac.in> Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com> Co-authored-by: Erik <erik@erosemberg.com> Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: Pratik Kumar <70286186+Pratik-Kumar-621@users.noreply.github.com> Co-authored-by: Udit Takkar <udit222001@gmail.com> Co-authored-by: Samyabrata Maji <116789799+samyabrata-maji@users.noreply.github.com> Co-authored-by: Manpreet Singh <manpoffc@gmail.com> Co-authored-by: Benny Joo <sldisek783@gmail.com> Co-authored-by: Dmytro Hryshyn <dev.dmytroh@gmail.com> Co-authored-by: DmytroHryshyn <125881252+DmytroHryshyn@users.noreply.github.com> Co-authored-by: zomars <zomars@me.com> Co-authored-by: Varun Prahlad Balani <varunprahladbalani@gmail.com> Co-authored-by: Mike Zhou <mikezhoudev@gmail.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Haran Rajkumar <haranrajkumar97@gmail.com> Co-authored-by: Harshith Pabbati <pabbatiharshith@gmail.com> Co-authored-by: Brendan Woodward <73412688+bwoody13@users.noreply.github.com> Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com> Co-authored-by: Keith Williams <keithwillcode@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Co-authored-by: gitstart-app[bot] <57568882+gitstart-app[bot]@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Anant Jain <75206987+anantJjain@users.noreply.github.com> Co-authored-by: Lauris <lauris@Lauriss-Laptop.local> Co-authored-by: supalarry <laurisskraucis@gmail.com> |
||
|
|
9230b2d2ca |
feat: update event types for default availability change (#13964)
* feat: update event types for default availability change * chore: add toast --------- Co-authored-by: sean-brydon <sean@cal.com> Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> |
||
|
|
9df9f9bb6b | refactor: trpc get schedule handler (#13586) | ||
|
|
0990549e7f |
perf: Don't process date overrides outside of requested boundaries (#13495)
* perf: Don't process date overrides outside of requested boundaries * Added ability to skip override calculations when not used * Only instantiating utc date for overrides once * Removed performance tracing * Cleanup * Fixed broken tests * Fix type * In process of fixing types * Types * Fixed types * Removed unnecessary performance.now() call * Changed override date check to use isBetween * Attempting to fix availability test * Put code back to test availability * Put back isBetween because confirmed it wasn't triggering the new test failures * Removed date check to see if this is breaking it * Put the code back since the test failed without it too * Skipping test to unblock pipeline unless research is done * Removed steps to test * Removing the piece around the troubleshooter * 1 more try * Adding an extra wait * Took out the boolean check to see if that's the issue * Put back the check * Trying to isolate the problem * Changed how the test loads the troubleshooter * Changed to OR to capture range better * Using the proper date instead of 1/1/1970 * Update availability.e2e.ts |
||
|
+1 |
12466fb064 |
feat: New Organization Schema along with the ability to invite existing users to an organization (#13002)
* Add profile table Copy to profile table Update schema Migrations * wip * Get switcher working * Add organization seeder * wip * Remove dead code * Fix unit tests * relevantProfile -> profile * cache bust * One more comment * Squash migrations * Copy to profile table * Update schema * Fix existing user invite flow * Add profile table * Copy to profile table * Update schema * Format * Add profile table Copy to profile table Update schema Migrations * Format * wip Get switcher working Add organization seeder wip Remove dead code Fix unit tests relevantProfile -> profile cache bust One more comment Squash migrations Copy to profile table Update schema Fix existing user invite flow Add profile table Copy to profile table Update schema chore: small improvements to signup (#13227) * removed features on mobile, better background color * nit * dark mode nits New Crowdin translations by Github Action fix: event reschedule workflow trigger (#13122) * fix event reschedule workflow trigger * uncomment previously failed test * review fix --------- Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Co-authored-by: CarinaWolli <wollencarina@gmail.com> chore: added community support to help (#13213) refactor: Abstract `handleSeats` from `handleNewBooking` (#12062) * Refactor createBooking * Type fix * Abstract handleSeats * Create Invitee type * Create OrganizerUser type * Abstract addVideoCallDataToEvt * Abstract createLoggerWithEventDetails * Abstract `handleAppStatus` from handler * Create ReqAppsStatus type * Move `deleteMeeting` and `getCalendar` * Set parameters for `handleSeats` * Typescript refactor * Change function params from req * Type fix --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: Erik <erik@erosemberg.com> fix: Dynamic group booking org-migration redirect (#13223) * fix: Dynamic group booking redirect * Fix flaky private team test test: Check availability tab and all your functions (teste2e-availability) (#12434) * add changes * add changes * add changes * add changes * Requested changes * Change way to grab element --------- Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com> Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: Keith Williams <keithwillcode@gmail.com> Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> fix: Reschedule a cancelled booking (#13170) * fix: Reschedule a cancelled booking * canceled instead of cancelled --------- Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> v3.7.0 test: In Team Event type when location is Organizer Default App and U… (#12939) * test: In Team Event type when location is Organizer Default App and User Metadata is emoty * chore: use variable * fix: type error test: add test for invalid cal video (#13103) * test: add test for invalid cal video * chore: add confirm * chore: fix type error * chore: update code * test: add unit test * chore: type error * chore * chore: type * chore: fix test * chore --------- Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> chore: add error message for no availability (#13230) * chore: add error message for no default user availability * chore: check only availability * chore: change message * chore: add eventType fix: Team revert with members (#13228) refactor: Refactor seats logic (#12905) * Refactor createBooking * Type fix * Abstract handleSeats * Create Invitee type * Create OrganizerUser type * Abstract addVideoCallDataToEvt * Abstract createLoggerWithEventDetails * Abstract `handleAppStatus` from handler * Create ReqAppsStatus type * Move `deleteMeeting` and `getCalendar` * Set parameters for `handleSeats` * Typescript refactor * Change function params from req * Type fix * Move handleSeats * Abstract lastAttendeeDeleteBooking * Create function for rescheduling seated events * Fix imports on reschedule seats function * Fix imports * Import handleSeats function * Fix rescheduleUid type * Refactor owner reschedule to new time slot * Refactor combine two booking times together * Reschedule as an attendee * Refactor createNewSeat * Remove old handleSeats * Remove lastAttendeeDeleteBooking from handleNewBooking * Test for new attendee right params are passed * Unit test params for reschedule * Typo fix * Clean up * Create new seat test * Test when attendee already signs up for booking * Type fix * Test reschedule move attendee to existing booking * On reschedule create new booking * Test on last attendee cancel booking * Owner reschedule to new time slot * Owner rescheduling, merge two bookings together * Test: when merging more than available seats, then fail * Test: fail when event is full * Remove duplicate E2E tests * Clean up * Rename `addVideoCallDataToEvt` to `addVideoCallDataToEvent` * Refactor `calcAppsStatus` * Assign `evt` to resutl of `addVideoCallDataToEvent` * Use prisma.transaction when moving attendees * Clean create seat call * Use ErrorCode enum * Use attendeeRescheduledSeatedBooking function * Await function * Prevent double triggering of workflows * Use inviteeToAdd in createNewSeat * Remove unused error code * Remove old handleSeats file * Type fix * Type fix * Type fix * Type fix * Type fix * Type fix * Type fix * Type fix --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: Erik <erik@erosemberg.com> feat: Allow admins to filter bookings only by attendee emails (#13236) * chore: Allow admins to filter bookings only by attendee emails * Fix type error Fixed [CAL-2930] Org branding isnt centered in shell #13225 (#13237) Add profile table Copy to profile table Update schema Migrations Format * wip * Add profile relation everywhere * Fix schema * Fix invite handler * Add profileId during eventTypec reation * Get dashboard working with profile relatioon * Add workflow create repository * Add profileId to host * Add profileId to credential table * Add destinationCalendar repository * Add profileId to membership * Revert all profile related changes * Add acme and dunder * Fix membership profileId usgae * Various fixes * Some renaming * Fix failing tests * Debugging next-aut * Consolidate migrations * Testing fixes * Fix unit tests * Self review feedback * PR feedback * Fix orgMigration as well * Add profile schema and copy users to it * Remove migrations from here * Fix type issues * Fix type error after main merge * Remove movedFromUserId * Add missing migration file * Self review addressed * Joe's review addressed * Fix profile switcher --------- Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> |
||
|
|
6a1325867e |
fix: Fix all TS warnings (fix-tsWarnings) (#12139)
Co-authored-by: gitstart-calcom <gitstart-calcom@users.noreply.github.com> Co-authored-by: GitStart-Cal.com <121884634+gitstart-calcom@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> |
||
|
|
bdd3b132d4 |
feat: troubleshooter with weekly view (V2) (#12280)
* Inital UI + layout setup * use booker approach of grid * event-select - sidebar + store work * adds get schedule by event-type-slug * Calendar toggle * Load schedule from event slug * Add busy events to calendar * useschedule * Store more event info than just slug * Add date override to calendar * Changes sizes on smaller screens * add event title as a tooltip * Ensure header navigation works * Stop navigator throwing errors on inital render * Correct br * Event duration fixes * Add getMoreInfo if user is authed with current request.username * Add calendar color map wip * Add WIP comments for coloured outlines * Revert more info changes * Calculate date override correctly * Add description option * Fix inital schedule data not being populated * Nudge overlap over to make it clearer * Fix disabled state * WIP on math logic * Event list overlapping events logic * NIT about width * i18n + manage calendars link * Delete old troubleshooter * Update packages/features/calendars/weeklyview/components/event/EventList.tsx * Remove t-slots * Fix i18n & install calendar action * sm:imrovments * NITS * Fix types * fix: back button * Month prop null as we control from query param * Add head SEO * Fix headseo import * Fix date override tests |
||
|
|
09fc7e1a4c |
fix: Remove count from query to update schedule (#12287)
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> |
||
|
|
31f3d9778e | Use correct typing for totalTeamMembers (#12152) | ||
|
|
b934c74c30 | fix: Avatar slug and cal links for cross org users (#12031) | ||
|
|
be1517facd | fix: get correct count for team members in slider (#12017) | ||
|
|
63416d4f33 |
chore: update tslog from 3.2.1 to 4.9.2 (#11717)
Co-authored-by: zomars <zomars@me.com> |
||
|
|
891a656449 |
fix: import prisma in calendarOverlay handler (#11837)
|
||
|
|
b4c6388ce0 |
feat: overlay your calendar (#11693)
* Init header + login modal component * Add calendar settings for authed user * Local storage and using query params for toggle * Toggle connect screen if query param present and no session * Local storage + store + way more than that should be in single commit * Display busy events on weekly view * Confirm booking slot of overlap exists * use chevron right when on column view * Show hover card - overlapping date times * Invalidate on switch * FIx clearing local storage when you login to another account * Force re-render on url state (atom quirks) * Add loading screen * Add dialog close * Remove extra grid config * Translations * [WIP] - tests * fix: google calendar busy times (#11696) Co-authored-by: CarinaWolli <wollencarina@gmail.com> * New Crowdin translations by Github Action * fix: rescheduled value DB update on reschedule and insights view cancelleds (#11474) * v3.3.5 * fix minutes string (#11703) Co-authored-by: CarinaWolli <wollencarina@gmail.com> * Regenerated yarn.lock * Add error component + loader * await tests * disable tests - add note * Refactor to include selected time * use no-scrollbar * Fix i18n * Fix tablet toolbar * overflow + i18n * Export empty object as test is TODO * Uses booker timezone * Fix hiding switch too early * Handle selected timezone * Fix timezone issues * Fix timezone issues --------- Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: alannnc <alannnc@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com> Co-authored-by: Peer Richelsen <peer@cal.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> |
||
|
|
79b60adf9b |
fix: timezone of default schedule should change if profile timezone is updated (#11533)
* change tz of default schedule * make sure user has at least one schedule --------- Co-authored-by: CarinaWolli <wollencarina@gmail.com> |