* Leverage ErrorCode cases for correct error codes in server responses
* better test
* fix
2025-06-25 13:18:01 -07:00
Joe Au-YeungGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>joe@cal.com <joe@cal.com>Benny Joocubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>Hariom
* Restart form if admin is not org admin
* Show pricing is admin and hosted
* Only show billing specific fields when enabled
* Create user onboarding only if valid valid license when self hosting
* Reset store when org creation is completed
* Create schema for trpc input when creating an org
* Add `organization.createSelfHosted` trpc endpoint
* `createOrganizationFromOnboarding` do not require stripe data
* Create organization without billing if self-hosted admin
* Update organizationOnboarding record as completed
* Handle updating subscription for self hosters
* Refactor `isBillingEnabled` to store
* Type fix
* Fix admin org creation for hosted
* Hide UI from admin
* Add tests
* fix: Fix LicenseKeySingleton mocking in organization tests
- Add proper vi.mock() module-level mocking for LicenseKeySingleton
- Replace incorrect casting syntax with vi.mocked() approach
- Add LicenseKeySingleton mock to hosted tests in intentToCreateOrg.handler.test.ts
- Fix IS_SELF_HOSTED mocking for hosted vs self-hosted test scenarios
- All organization creation tests now pass locally
Co-Authored-By: joe@cal.com <joe@cal.com>
* Fix tests
* Fix tests
* Test fixes
* Type fix
* Type fix
* Type fix
* Update packages/features/ee/organizations/lib/server/createOrganizationFromOnboarding.test.ts
Fix typo
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* fix: Add IS_SELF_HOSTED mocking for E2E organization creation tests
Co-Authored-By: joe@cal.com <joe@cal.com>
* Fix E2E test
* Address feedback
* Type fix
* Fix e2e tests
* Remove unused code
* Small fixes
* fix unit tests
* review fixes
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: joe@cal.com <joe@cal.com>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Hariom <hariombalhara@gmail.com>
* fix creating user balance
* fix org check if teamId is given
* adjust hasAvailableCredits function
* improve comments
* fix creditBalance.create
* adjust test
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* add smsSegments to creditExpenseLog
* add download button
* download only data from selected month
* improvements
* improve design
* use repository function
* add tests for credit repository
* fix type error
* fix unit test
* fix type error
* fix unit test
* code clean up
* fix skeleton loader
* remove empty mt
* code clean up
* move csv headers out of function
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
* Add unit tests to routing flow
* fix: resolve TypeScript errors in routing forms test files
- Fix mock form structure to match TargetRoutingFormForResponse type
- Add missing properties like selectText, deleted, updatedById to form fields
- Correct route action types to use valid RouteActionType enum values
- Fix response objects to include required label property
- Update mock return values for findTeamMembersMatchingAttributeLogic
- Use proper type assertions for complex route objects
Co-Authored-By: hariom@cal.com <hariom@cal.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: hariom@cal.com <hariom@cal.com>
* Add queued booking response table
* Create `RoutingFormResponseRepository`
* Pass `queueFormResponse` param
* Queue up form response if param is passed
* Forward queued form response parma to booker
* Pass `queuedFormResponse` from booker to `handleNewBooking`
* Write queued routing form response
* Type fixes
* Clean up
* Allow dry run to work which wont have any QueuedFormResponse or FormResponse
* Support passing the time when the modal was actually shown to the user and consider that time as the time of form submission
* fix ts error
* Queue -> Response through separate endpoint that would be triggered by
embed
* Make queueResponseId a non-guessable uid
* Change queueFormResponse query param
* fix ts error
* Support useQueuedResponse to record new response data
* revert handleNewBooking
* Remove dead code formResponse
* Refactor use repository
* Unify migration files
* refactor: moved api endpoint to app dir
Signed-off-by: Omar López <zomars@me.com>
* Update formResponse.ts
* Refactor use-queued-response for test
* Add tests
* Fix ts error and unit test. recordFormResponse cant return nullish response
* fix schema
* feat: Support full reuse of preloaded iframe (#21803)
* feat: support updating cal video settings in API v2 (#21784)
* feat: support updating cal video settings in API v2
* chore: update descriptio
* feat: support create event type
* test: add test for updating event type
* test: add test for create event type
* chore: undo openapi
* chore: bump libraries
* Revert "chore: bump libraries"
This reverts commit bdf36d09b021fc531497a7b7ea66ab9c52b7d136.
* chore: bump libraries
---------
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* fix tests and ts
* Fix tests
* wip-useQueuedResponseEndpoint
* Add one more test
* Change queueFormResponse query param
* wip
* Support useQueuedResponse to record new response data
* Use the update useQueuedResponse endpoint
* self-review addressed
* Use queuedResponse if available in slots/utils
* Add documentation
* Remove use-queued-response from critical-path
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* Update schema.prisma
* refactor: renamed to avoid react hooks confusion
Signed-off-by: Omar López <zomars@me.com>
---------
Signed-off-by: Omar López <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* 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>
* feat - Restrict same email to create more than 'n' active bookings at a time
* updated checkbookerbookinglimit function
* type fix
* minor change
* import fix
* minor fixes
* back to null on disable
* back
* type check
* managed edge cases
* chore: name changes
* name changes
* fix
* minor change
* changed name
* use default value for maxactivebookingsperbooker, and some minor changes
* disabling bookerbooking limit for recurring event
* disabling bookerbooking limit for recurring event
* type fix
* ui fix and backend eventtype update check
* Add `maxActiveBookingPerBookerOfferReschedule` to schema
* Create `MaxActiveBookingsPerBookerController` and offer reschedule option
* Add offer reschedule to event type form data
* Pass data through to HttpError
* When checking max bookings, return last booking info if applicable
* removed unused code
* minor changes
* update validation
* chore
* Do not check booking limits if rescheduling
* Add data for reschedule
* Add reschedule specific error code
* On maximum booking error, write to booker store reschedule params
* Add translations for error codes
* Write to error message previous booking time
* minor fix
* Write to error message previous booking time
* Type fixes
* Clean up comment
* Refactor eventType update errors
* Typo fix
* Type fix
* Type fix
* Type fix
* Fix test
* Fix test
* Add migration
* Addressed feedback and missed merges
---------
Co-authored-by: romit <romitgabani@icloud.com>
* feat - Restrict same email to create more than 'n' active bookings at a time
* updated checkbookerbookinglimit function
* type fix
* minor change
* import fix
* minor fixes
* back to null on disable
* back
* type check
* managed edge cases
* chore: name changes
* name changes
* fix
* minor change
* changed name
* use default value for maxactivebookingsperbooker, and some minor changes
* disabling bookerbooking limit for recurring event
* disabling bookerbooking limit for recurring event
* type fix
* ui fix and backend eventtype update check
* removed unused code
* minor changes
* update validation
* chore
* Do not check booking limits if rescheduling
* minor fix
* Refactor eventType update errors
* Typo fix
---------
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
* feat: support updating cal video settings in API v2
* chore: update descriptio
* feat: support create event type
* test: add test for updating event type
* test: add test for create event type
* chore: undo openapi
* chore: bump libraries
* Revert "chore: bump libraries"
This reverts commit bdf36d09b021fc531497a7b7ea66ab9c52b7d136.
* chore: bump libraries
---------
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
* 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>
- Add utility function for cascading hideBranding logic
- Update all getServerSideProps files to check organization hideBranding as fallback
- Ensure team queries include parent hideBranding data
- Fix hideBranding not working for organization members and teams
Fixes the issue where organization-level branding settings were not
being applied to user and team event pages when the direct entity
didn't have hideBranding enabled.
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
* Create `VerificationTokenRepository`
* Update the verification token expiry when resending the invite
* Handle error
* Fix import
* Get past unique constraint
* Update packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts
Co-authored-by: Alex van Andel <me@alexvanandel.com>
* Update packages/lib/server/repository/verificationToken.ts
Update set expiry time
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* Type fix
* Update how we're fetching the token
---------
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-06-11 22:21:58 +00:00
Amit SharmaGitHubcubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* feature eventType specific language or bookingPage language
* chore
* fix type checks
* chore
* chore: remove log
* improvement: this updates in DatePicker is not required with context provider method
* added e2e tests for InterfaceLanguage feature
* corrected prev merge conflict issues
* update to align with hooks usage pattern
* chore
* unrelated auto-formatting changes
* unrelated auto-formatting changes
* unrelated auto-formatting changes
* update to affect interfaceLanguage on success page
* undone prettier changes
* update test for success page translation
* chore
* return null from memo
* fix typecheck error due to atom imports in useLocale
* set default interfaceLanguage as null
* updated to use null instead of constant
* enhancements
* fix latest unit test, use prop instead of useSession hook
* fix build issue
* chore
* fix atom build issue
* fix unit test with reqd mock
* update to use server i18n rendering
* nit
* Move import localeOptions to EventSetupTabWebWrapper
* make sure we only display interface language option in web app
* using customI18nProvider
---------
Co-authored-by: amrit <iamamrit27@gmail.com>
Co-authored-by: Tushar Bhatt <95581504+TusharBhatt1@users.noreply.github.com>
Co-authored-by: Tushar <tusharbhatt0135@gmail.com>
Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Ryukemeister <sahalrajiv6900@gmail.com>
Co-authored-by: Rajiv Sahal <sahalrajiv-extc@atharvacoe.ac.in>
Co-authored-by: Benny Joo <sldisek783@gmail.com>
* 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
* Add credits section to billing
* create seperate router for credits
* add stripe checkout session
* schema changes + code improvements
* rename to creditBalance
* custom quantify input with error message
* add checkout session completed webhook endpoint
* fix typo
* UI fixes
* add payCredits handler
* add error toast message
* allow scheduling sms up as close to 15 minutes in the future
* schedule at most 2 hours in advance
* webhook to pay for sent sms
* continued work on twilio callback
* code clean up
* further implementation for credit handling
* add migration
* object as param for scheduleSMS
* object as param for sendSMS
* fix TrpcSessionUser imports
* fix imports
* add db changes
* add cron job for price setting
* twilio status callback to create expense log
* remove unused code
* set up low credit balance email
* fixes for buying credits
* fixes in api/twilio/webhook
* add test to save credits to credits balance
* fix typos
* add new helper function chargeCredits
* expand twilioProvider
* fix type errors
* adjust tests
* type errors
* clean up
* clean up
* fix subscription active check
* remove some user/org related code
* more changes to remove user/org support
* send emails seperatly to admins
* fixes for team billing page
* fix stripe success url
* fixes to creating expense log
* email imrovements and more
* get monthly team price from stripe
* fix import
* fix monthly credits calculation
* finsih low credit balance warning email
* credit balance limit reached email
* create CreditService
* cancel SMS and send as email instead
* add messageDispatcher
* fix type error
* fix type error
* fix type error
* fix import
* fix unit test
* clean up twilioProvider
* clean up chckSmsPrices/route
* add missing translations
* add skeleton loader
* add admin check to get handler
* code clean up + fixes
* improve scheduling with fallback
* fix type error
* add bookingUid to handleSendingSMS
* add unit tests for creditService
* add more tests to credit-service.test.ts
* add test for cancelScheduledMessagesAndScheduleEmails
* fix test and type error
* add back resolve
* fix empty resolve
* adjust limitReachedAt logic
* address mrge comment on styling
* add getAdminMembership to repository
* twilio/webhook clean up (feedback)
* feedback - clean up
* remove todo comment
* clean up twilio/webhook
* code clean up
* add use client
* add createOneTimeCheckout to stripe service
* refactor repository pattern
* small fixes + clean up
* fix type error
* add missing import
* fix hasAvailableCredits for user
* force-dynamic
* rename credits to creditBalance
* fix stripe import
* remove not needed code
* fix e2e tests
* improve low balance warning email
* dynamic-import CreditService
* index.ts
* add user logic checkSmsPrices endpoint
* fix e2e tests
* remove dynamic import CreditService
* Revert "remove dynamic import CreditService"
This reverts commit e272978a7ff3fc5a04139e656c9f8d2c84a40dda.
* no need to dynamic-import credit service
* Revert "no need to dynamic-import credit service"
This reverts commit ba5ae488d08979a65fb47b5d0722cda9f45d6ea0.
* fix twilio webhook
* add userId support in checkout.session.completed
* clean up code
* only select id in getAdminMembership
* revert billing/package.json
* fix type checks
* fix type checks
* adjust hasAvailableCredits function
* fixes for checkout sessioned completed
* add UI for user
* fix type errors
* adds requires credits badge
* remove team check from update.handler
* clean up inlcude statements
* fix credit-service tests
* add tests
* fix type errors
* fix type errors
* fix and add tests
* imrove badge
* code clean up
* add reminderScheduler test
* add additional credits as title
* fixes for warningSentAt and limitReachedAt
* mock stripe
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: hbjORbj <sldisek783@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2025-05-13 15:55:19 +02:00
devin-ai-integration[bot]GitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>benny@cal.com <benny@cal.com>