* chore: Remove deprecated logo/avatar/away fields
* Use right variables for accounts-step-card
* Remove more deprecated logo/avatar usage
* Dont drop the fields until all usages are gone
* Remove the avatar/logo drops for staggered release
* fix: Typescript blindspot (unvalidated include fields)
* fix: Further updates (mostly to API) typescript missed
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* feat: API v2 subversioning
* Update app.ts
* Added multiple versions to existing controllers
* Updated the slots controller
* chore: version platform library package with npm package alias
* chore: use consts to version
* chore: use consts to version
* chore: version api for cal provider
* chore: remove timezone controller subversion poc
* fixup! Merge branch 'main' into feat/api-v2-subversioning
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* init endpoints for office 365 syncing
* get web app url for oauth
* update typings
* nethods for office 365 calendar
* update office 365 connect endpoint
* update packages
* add calendar type and if office 365 calendar
* add SelectedCalendarsRepository and TokensModule
* add functions for getting oauth credentials, getting default calendars and redirect url for office 365 calendar
* update controllers
* e2e tests for office 365 calendar endpoints
* fixup! Merge branch 'main' into rajiv/cal-3544-outlookoffice365-integration-connect-atom
* fixup! fixup! Merge branch 'main' into rajiv/cal-3544-outlookoffice365-integration-connect-atom
* fix merge conflict
* update typings
* abstract microsoft outlook into its own module
* add one common interface for calendar apps
* make calendars dynamic
* abstract every calendar app into its own service
* cleanup
* make all calendar endpoints dynamic
* calendar app constants
* cleanup
* remove unused repositories
* rename microsoft calendar type
* fix typings
* add google and outlook calendar service to calendars module
* fixup
* some more e2e tests including google calendar
* chore: small type change and apple calendar not implemented yet
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Rajiv Sahal <rajivsahal@Rajivs-MacBook-Pro.local>
* 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
* chore: open disableGuests for eventtypes apiv2
* fixup! chore: open disableGuests for eventtypes apiv2
* fixup! fixup! chore: open disableGuests for eventtypes apiv2
* chore: add disableGuests to create handler
* add endpoint to fetch managed user from client id
* update typings
* minor tweaks
* custom hook to fetch managed users from client id
* add translations for platform onboarding
* add isPlatformOrg boolean to figure out which is platform and which is not
* set isPlatform hook based on data obtained from org
* add limitWidth prop to control component width
* add props to shell to make sidebar display different tabs based on if the shell isPlattform or not
* platform related pages
* fix merge conflicts
* fix merge conflicts
* platform oauth client form and card
* remove everything related to platform from organization
* update oauth client card and form
* fixup
* fix imports and remove logs
* fixup
* update redirect url
* split oauth client form into separate update and create forms
* separate forms for create and edit oauth clients
* fixup
* fixup
* dynamic routes for oauth client edit page
* fixup fixup
* fix to not show error when redirect uri is empty
* refactor create handler for org
* cleaup comments
* add custom hook to check user billing
* export managed user type
* refactor platform index page
* refactor edit and create pages
* dashboard component containing oauth client list and managed user
* common oauth client form used for create and edit form
* platform pricing helper
* platform pricing component
* fix typing and data response for billing
* use custom hook to check team billing info
* fix type checks
* upgrade conditional rendering for upgrade to org banner
* add isLoading prop to check button loading state
* pass in button handler
* add custom hook to subscribe to stripe and typings
* update typings
* fix incorrect endpoint
* pass in team id as prop
* fix type check
* update stripe success and cancel redirect url
* add and pass redirect url param to custom hook
* custom hooks for platform
* cleanup
* update imports
* fix merge conflicts
* fixup
* fixup fixup
* fixup
* merge conflicts fixup
* merge conlficts battle :(
* minor fixes
* skip admin checks for a platform client
* fix typo
* append slug with _platform for a platform user
* PR feedback
* dashboard refactor
* bring back org form to its orginal state
* add platform folder to ee
* update typings
* use new create platform form
* fixup
* fix typo and update plans
* simplifying rendering
* remove managed users endpoint since it already exists
* url for endpoint
* rename tabs
* pr feedback
* managed users endpoint
* update endpoint
* remove form
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: exception <erik@erosemberg.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* refactor: create, update user inputs use types instead of custom validators
* fix: save weekStart, timeFormat, timeZone when creating user
* fix: save weekStart, timeFormat, timeZone when creating user
* e2e: fix env variables and test weekStart, timeZone and timeFormat during user create
* feat: setup usePublicEvent with orgSlug and duration
* feat: setup useAvailableSlots with eventTypeSlug and orgSlug
* fix & feat: fix TS issues and allow passing multiple users to Booker
* refactor: dont show [15min] [30min] [60min] [1h30min] picker
* fix: pass orgSlug to handleNewBooking -> loadUsers -> findUsersByUsername to not return empty users[]
* refactor: display attendees in booking confirmation screen
* fix: getting slots get orgSlug from props not event
* revert: Booker username use props instead of hardcoded values
* refactor: setup BookerStore org and use it for selectedTime + isDynamic logic
* refactor: hide 'what is this meeting about' input in final booking step
* fix: TS error
* revert: what is the meeting about field hiding
* revert: make org as org? in booker store
* revert: createNewBooking -> loadUsers -> get forced orgSlug from header not body
* refactor: useHandleBookEvent get orgSlug from booker store not props
* fix: if entity undefined dont access orgSlug
* refactor: add isDynamic prop as queryKey for usePublicEvent
* refactor: remove unused prop
* re-add docs
* fix: typescript error
* fix: force platform orgSlug in handleNewBooking.ts
* fix: remove duplicate setSelectedDuration declaration
* refactor: destructure properies from body instead of req.body
* fix: entity optional and hide event members
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: Morgan Vernay <morgan@cal.com>
* chore: Billing Service
* chore: others
* chore: don't type
* chore: typo
* chore: use proper wh secret
* chore: updates
* chore: lockfile
* chore: docs and comment out
* chore: updates and include plan
* chore: config
* chore: bring back alias
* chore: update lockfile
* chore: refactor
* chore: default none plan in db
* chore: read from env vars
* chore: feedback
* chore: remove json config
* chore: proper type
* feat: Add linting rule to recursively check for Prisma includes using only 'true'
* Fixing linting errors
* More linting fixes
* Disabled linting for forms
* Update recommended.ts
* Removed ignores
* Fixed warning
* Type fix
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* frontend: handle booking locationUrl
* backend: pass booking locationUrl to handleNewBooking
* examples app: display booking location if provided
* fix: v2 not starting: contains -> includes
* backend: pass booking locationUrl to handleNewBooking
* swagger docs update
* examples app: dont display where of booking if does not start with http
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>