* feat: add guards to stripe teams controller
* remove logs and comments
* fix return type status
* refactor: move PlatformSubscription to a dedicated module
* reroute to `organizations/stripe/save` for teams
* fix: type errors
* feat: fixed it for conferencing apps
* feat: Add error handling and fallback URL support in Stripe callback
* Refactor OAuth callback handling and move token validation to service layer
* Add documentation for OAuth callback proxying in conferencing and stripe controllers
* Move OAuthCallbackState type from organizations to stripe service module
* feat: routing form response slots
* fix
* test routing form slots
* chore: bump libraries
* docs
* docs
* chore: api docs from main to merge main
* chore: regenerate api docs
* fix: enabling weights on RR events breaks atoms
* Update find-team-members-matching-attribute.input.ts
* refactor: Extract team member processing logic into separate hook
* Update find-team-members-matching-attribute.input.ts
* moved `TeamMemberDto` and `FindTeamMembersMatchingAttributeOutputDto` to platform-types
* `team-members.output.ts` -> `team-members-attributes.output.ts`
* upgrade platform-libraries
* feat: get org bookings endpoint api-v2
* fix userId filter transform
* fix: update getBookings to take filter.userIds in account
* refactor: getBooking where clause
* fixup! refactor: getBooking where clause
* feat: enable org owners to see org member bookings as attendees
* update flaky e2e tests
* fixup! feat: enable org owners to see org member bookings as attendees
* fixup! fixup! feat: enable org owners to see org member bookings as attendees
* chore: differentiate between org/team owner/admin
* chore: throw error with invalid userIds filter
* chore: clearly ensure non team orgs when orgId is not specified
* bump libraries and add comments
* bump libraries
* chore: give main profile orgId to getAllUserBookings
---------
Co-authored-by: Eunjae Lee <hey@eunjae.dev>
* extract NextRequest
* update api and tests
* booking limits tests
* fix more tests to use new approach
* update more tests with new format
* extract getOrgDomainConfig to not use req
* extract req from loadNewUsers and pass in hostname/forcedSlug
* fix instant meeting types and hostname fixes
* fix handleNewBookingReq
* fix type errors in tests
* make hostName and forcedSlug optional
* fix type err
* Revert "fix type err"
This reverts commit 9d5de9019d9dafe348c97b876baaa1d0675967e5.
* wip fix e2e
* fix: add missing headers
* migrate handle recurring event and also create tests specific to fn
* platform recurringbooking
* fix type
* hard code types on request object
* bump libraries
* fixup! bump libraries
* fix: accessing host if headers not passed
* fix: v2 recurring booking
* fix: accessing host if headers not passed
* chore: bump platform libraries
* fix tests
* push
* chore: bump libraries
* push lock changes
* bump libraries
---------
Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
* feat: added zoom, office365-video as valid event-type locations
* added docs
* Update stripe.service.ts
* enable conferencing apps for teams initial commit
* fix: make conferencing atom work with teams
* update team events in bulk update default location
* feat: Separate endpoints for team conferencing apps instead of query params
* Display all team events in 'Bulk update existing event types' modal when conferencing atom is enabled for Teams
* fix: bulk update default location for team events
* removed the organizations endpoints
* Refactor: Separate functions for team events to follow SRP
* undo extra changes
* undo extra changes
* fix: platform libraries build breaking
* feat: only allow integrations which are installed in create/update team/user event-type endpoints
* fix: merge conflicts
* remove redundant imports
* Update ConferencingAppsViewPlatformWrapper.tsx
* Update useBanners.ts
* fix: axios error response interceptor
* feat: update :app param docs in `organizations-conferencing.controller`
* Revert "fix: axios error response interceptor"
This reverts commit 729eac3eee9f81c19b5368bbae4b1666884221fd.
* Update useAtomsGetInstalledConferencingApps.ts
* upgrade platform libraries
* Update apps.ts
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* refactor handleCancelBooking to not have next request
* fix platform v2 function calls
* dont fall back to "" if no seat refrence
* add missing type from merge
* chore: bump platform libraries
---------
Co-authored-by: Amit Sharma <74371312+Amit91848@users.noreply.github.com>
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* Add `RR_REASSIGNED` to schema
* Handle recording reassigned manual vs rr
* Pass manual assignment prop to `AssignmentReasonRecorder`
* Add log to determine who is doing the reassignment
* RR reassign - add initializing log
* Record assignment reason when reassigning via rr
* Add `reassignedById` in trpc endpoint
* Add `reassignedById` param in api v2 endpoint
* Migration to add `RR_REASSIGNED`
* refactor: input event types service remove unused code
* feat: toggle if email field is hidden
* chore: ensure event type has email or attendee phone field required
* chore: ensure non-org team cant have phone only event type
* chore: ensure users cant have phone only event type
* chore: ensure org team can have phone only event type
* chore: bump libraries
* docs
* refactor: confirm failing test response message
* fix: unit test
* chore: default organizer booking location docs
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* refactor: Remove intervalLimits from @calcom/lib and export directly (#19710)
* refactor: Remove intervalLimits from @calcom/lib and export directly
* Tackle other places that use parseBookingLimit/parseDurationLimit
* More type fixups that were hidden by previous fails
* Fixed up booking-limits file
* Remove server-only
## What does this PR do?
<!-- Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. -->
- Fixes #XXXX (GitHub issue number)
- Fixes CAL-XXXX (Linear issue number - should be visible at the bottom of the GitHub issue description)
## Visual Demo (For contributors especially)
A visual demonstration is strongly recommended, for both the original and new change **(video / image - any one)**.
#### Video Demo (if applicable):
- Show screen recordings of the issue or feature.
- Demonstrate how to reproduce the issue, the behavior before and after the change.
#### Image Demo (if applicable):
- Add side-by-side screenshots of the original and updated change.
- Highlight any significant change(s).
## Mandatory Tasks (DO NOT REMOVE)
- [ ] I have self-reviewed the code (A decent size PR without self-review might be rejected).
- [ ] I have updated the developer docs in /docs if this PR makes changes that would require a [documentation change](https://cal.com/docs). If N/A, write N/A here and check the checkbox.
- [ ] I confirm automated tests are in place that prove my fix is effective or that my feature works.
## How should this be tested?
<!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. Write details that help to start the tests -->
- Are there environment variables that should be set?
- What are the minimal test data to have?
- What is expected (happy path) to have (input and output)?
- Any other important info that could help to test that PR
## Checklist
<!-- Remove bullet points below that don't apply to you -->
- I haven't read the [contributing guide](https://github.com/calcom/cal.com/blob/main/CONTRIBUTING.md)
- My code doesn't follow the style guidelines of this project
- I haven't commented my code, particularly in hard-to-understand areas
- I haven't checked if my changes generate no new warnings
* Add unit tests and e2e
* fix ts errors
* Add comment
* bump platform libs
* fix: yarn-lock
* fix yarn.lock
* doc update
* Add isString
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
* chore: Fix build failure due to trpc inference depth
* Also bump platform libraries typescript version
* fix: e2e test using unassigned variable
* chore: bump libraries to 0.0.142
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
* Revert "Revert "chore: rename DWD to DelegationCredential (#19703)" (#19734)"
This reverts commit 340b5ab061.
* chore: fix schema and types for now
* fix: domainWideDelegationCredentialId error type
* feat: added Ability to set organizer's default app as a valid input location in api/v2
* only allow organizers default for team events
* fixed for atoms and added unit and e2e tests
* Update organizations-event-types.e2e-spec.ts
* Update transformApiEventTypeForAtom.ts
* published platform-libraries@0.0.124
---------
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* 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>
* fix: enable event-type booking field url with api v2
* fixup! fix: enable event-type booking field url with api v2
* fixup! fixup! fix: enable event-type booking field url with api v2
* fixup! fixup! fixup! fix: enable event-type booking field url with api v2
* refactor: version old slots
* feat: init new slots endpoints
* chore: range format
* fix: duratin
* fix: duratin
* test: slot releaseAt
* refactor: reserve slot response
* refactor variable name
* docs: have new slots controller in docs
* feat: crud for slots reservations
* refactor: use exclude all for response
* docs
* chore: slots input service
* refactor mini
* refactor: remove unused imports
* docs
* handle orgSlug for dynamic events
* refactor: correct name
* docs
* add optional organizationSlug to BySlug search
* refactor: slot output format
* refactor: return seated slot info
* docs
* rename functions
* refactor: slots seated response
* fix: handle same username in org and non org
* refactor: test format
* fix: allow reservationDuration only for authed requests
* chore: check if auth user has permissions to define custom reservation duration
* refactor: split e2e test files
* refactor: invalid request exception codes
* chore: old slots controller uses all old versions
* refactor: use unique names in e2e tests
* refactor: version number in tests
* refactor: use unique names in e2e tests
* refactor: use unique names in e2e tests
* refactor: test cleanup
* refactor: increase e2e maxWorkers to 8
* refactor: randomNumber -> randomString
* chore: add local e2e command