Compare commits

...
1255 Commits
Author SHA1 Message Date
Alex van Andel 1929d5c7d4 v3.0.2
release.yml / release (push) Canceled after 0s
2023-06-19 13:33:13 +02:00
Papageorgiou Nikos 8ae54cd7cc fix: Storybook build and fix cal brand colors (#9588)
Storybook failed with satisfies operator
Fix cal brand colors in storybook
2023-06-19 13:28:49 +02:00
Hariom Balhara bb13009e64 + is %2B as well (#9624) 2023-06-19 11:22:13 +00:00
Jeroen Reumkens 648dd862f5 Tweaks to booker grid sizing to prevent buttons from overflow booker wrapper in Safari (#9620) 2023-06-19 11:34:49 +01:00
sean-brydonandzomars 8eccd3658e feat: Upstash implementation for rate limiting/redis (#9514)
* Introduce rate limiting that works on the edge

* typo

* Log once on init

* Update rateLimit.ts

---------

Co-authored-by: zomars <zomars@me.com>
2023-06-19 10:01:06 +00:00
Ujwal KumarandJeroen Reumkens ed65b2a3ab fix: Hide layout switcher when only 1 layout is enabled (#9610)
* Hide layout switcher when only 1 layouts is enabled

* Ran prettier

---------

Co-authored-by: Jeroen Reumkens <hello@jeroenreumkens.nl>
2023-06-19 08:55:25 +00:00
Manav Guptaandsean-brydon 0930121680 fix: event type filter in Mobile view (#9619)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2023-06-18 21:11:41 +00:00
Crowdin Bot 1068873f27 New Crowdin translations by Github Action 2023-06-18 20:55:42 +00:00
Udit TakkarandPeer Richelsen a1ece0be63 fix: sidebar ui (#9581)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-18 20:54:57 +00:00
Crowdin Bot c550b4c8fc New Crowdin translations by Github Action 2023-06-18 19:22:51 +00:00
VIvek ChavanandKeith Williams e95650637c fix: changes "cancelled" to canceled (#9505)
* fixed #9502 changes cancelled to cenceled

* fixed cancelled to cancelled from all places in common.json

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-18 19:21:52 +00:00
0f3e0a1554 fix: Alert component fixed (#9605)
* fix: Alert Component Fixed

* Update packages/ui/components/alert/Alert.tsx

---------

Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-17 20:57:15 +00:00
Peer Richelsen 761dfac033 3.0.1
release.yml / release (push) Canceled after 0s
2023-06-17 22:48:38 +02:00
Crowdin Bot 9fda4acc5b New Crowdin translations by Github Action 2023-06-17 20:45:08 +00:00
Jaideep Guntupalli 0470708aad refactor: translated request_password_reset in dutch (#9601) 2023-06-17 22:44:36 +02:00
Crowdin Bot bee392ba1a New Crowdin translations by Github Action 2023-06-17 20:43:01 +00:00
Hariom BalharaandPeer Richelsen 448f57442b Use the old booker redirect approach (#9589)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-17 20:42:15 +00:00
Crowdin Bot 856b090b4b New Crowdin translations by Github Action 2023-06-17 20:28:18 +00:00
Ujwal Kumar b99661a411 Fix typo in email verification banner (#9595) 2023-06-17 22:27:24 +02:00
Crowdin Bot d96a26eb3c New Crowdin translations by Github Action 2023-06-17 15:48:23 +00:00
Eric Dantas 9d08f5c7c8 chore: Create add-PRs-to-project-reviewing-PRs.yml (#9597)
* Create add-PRs-to-project-eric.yml

* Update and rename add-PRs-to-project-eric.yml to add-PRs-to-project-reviewing-PRs.yml

* Update add-PRs-to-project-reviewing-PRs.yml
2023-06-17 17:47:29 +02:00
Crowdin Bot 4fe5f6ca6f New Crowdin translations by Github Action 2023-06-17 01:06:55 +00:00
Esaú MoraisandAlex van Andel af505935bd fix: update top banner (#9580)
* fix: update wrong banner message in english

* fix: update `resend_email` translation in pt-BR

* chore: add `Icon` prop to `TopBanner` component

* fix: remove unnecessary variant scope

* Remove translations so they can be retranslated, complete design

* Changed key of already translated entry

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-06-17 01:06:04 +00:00
Leo Giovanetti 4a30f60622 Configuring totp code when verifying too (#9584) 2023-06-16 20:08:12 +00:00
Alex van Andel 24ed04e6c7 v3.0.0.2
release.yml / release (push) Canceled after 0s
2023-06-16 19:21:26 +02:00
Hariom Balhara bed3595314 fix: Dynamic Group Links on vercel (#9576)
* Potential fix

* Debug

* Debug

* Use the same logic in new-booker
2023-06-16 19:00:23 +02:00
Alex van Andel 74671263bf fix: New booker selected date issues (#9570)
* Pick correct selected date

* Commented out unused booking page revalidation

* Fixed selected default bookerLayout not being applied

* Use the right weekdayOfFirst - date(1) of browsingDate
2023-06-16 18:08:58 +02:00
Crowdin Bot bdc5e9c7e9 New Crowdin translations by Github Action 2023-06-16 14:39:35 +00:00
Leo Giovanetti 8fa1c70a97 Adding more time to org admin email verif step (#9574) 2023-06-16 14:38:40 +00:00
Hariom Balhara 1343c8fa8d fix: Booking Page crash with prefilling guests (#9566)
* Fix Booking Page crash with prefilling guests

* Update packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx
2023-06-16 15:02:59 +02:00
Crowdin Bot 5c0f9510a1 New Crowdin translations by Github Action 2023-06-16 12:46:06 +00:00
b2801170fa fix: Default tab selected issue (#9546)
* default tab selected issue

* refactor: improve cde

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: use onSuccess

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: move onsuccess and onerror

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Vinoth Kumar V <vinoth_kumar_v@Vinoths-MacBook-Pro.local>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-16 12:45:20 +00:00
Alex van Andel 6ac19e8307 v3.0.0.1
release.yml / release (push) Canceled after 0s
2023-06-16 12:48:20 +02:00
Hariom Balhara 344241cfbf fix: New Booker Rewrites (#9557)
* Solve the problem using Next.config.js only

* Debug

* Avoid infinite rewritees

* Apply suggestions from code review

* Apply suggestions from code review

* Remove stale comments

* Update packages/embeds/embed-core/src/embed-iframe.ts
2023-06-16 12:31:57 +02:00
Carina WollendorferandCarinaWolli 66ebf18fa9 add team slug to team event link (#9558)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-06-16 11:05:47 +02:00
Crowdin Bot e6d6f3317e New Crowdin translations by Github Action 2023-06-16 08:38:03 +00:00
Carina WollendorferandCarinaWolli 55f66e6bcd remove slash (#9556)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-06-16 08:37:06 +00:00
Crowdin Bot 22e2b0a6a9 New Crowdin translations by Github Action 2023-06-16 06:27:50 +00:00
sydwardrae e24f3828cb Spelling chore common.json (#9550)
Fixed occured to occurred
2023-06-16 08:26:59 +02:00
Crowdin Bot 70f5bdc499 New Crowdin translations by Github Action 2023-06-15 22:38:02 +00:00
zomars 8731a39c3c fix: api build 2023-06-15 15:36:59 -07:00
Omar López e2d9e75475 v3.0.0
release.yml / release (push) Canceled after 0s
2023-06-15 15:15:39 -07:00
Crowdin Bot 55c7707b94 New Crowdin translations by Github Action 2023-06-15 22:15:20 +00:00
Crowdin Bot 98944d4815 New Crowdin translations by Github Action 2023-06-15 17:29:48 +00:00
Crowdin Bot faba25acbd New Crowdin translations by Github Action 2023-06-15 17:28:46 +00:00
aab5ee344c feat: Org settings - profile,appearance, child teams, create new child (#9231)
* Initial commit

* Adding feature flag

* Desktop first banner, mobile pending

* Removing dead code and img

* AppInstallButtonBase

* WIP

* Adds Email verification template+translations for organizations (#9202)

* feat: Orgs Schema Changing `scopedMembers` to `orgUsers` (#9209)

* Change scopedMembers to orgMembers

* Change to orgUsers

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Session logic to show org label

* Step 2 done, avatar not working

* List orgs and list teams specific if orgs exist

* Conditionally show org - fix settings layout - add labels for all pages

* Profile Page + update

* Org specific team creation

* appearance page

* Ensure members cant of org cant update settings in UI

* Fix update handler imports

* hide billing on sub teams

* Update profile slug page

* Letting duplicate slugs for teams to support orgs

* Add slug coliisions for org

* Covering null on unique clauses

* Covering null on unique clauses

* Extract to utils

* Update settings to use subdomain path in team url , team + org

* Supporting having the orgId in the session cookie

* Onboarding admins step

* Last step to create teams

* Update handler comments

* Upgrade ORG banner - disabled team banner for child teams

* Handle publishing ORGS

* Fix licenese issue

* Update packages/trpc/server/routers/viewer/teams/create.handler.ts

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* A11ly

* Feedback

* Making an org avatar (temp)

* Add slug colission detection for user and team name

* Fix Import

* Remove update password func

* Fix module import over relative

* feat: organization event type filter (#9253)

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* Missing changes to support orgs schema changes

* Remove app install button sa its in 9337

* Remove i18n key not being used

* feat: Onboarding process to create an organization (#9184)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Making sure we check requestedSlug now

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* feat: [CAL-1816] Organization subdomain support (#9345)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* Covering users and subteams, excluding non-org users

* Unpublished teams shows correctly

* Create subdomain in Vercel

* feedback

* Renaming Vercel env vars

* Vercel domain check before creation

* Supporting cal-staging.com

* Change to have vercel detect it

* vercel domain check data message error

* Remove check domain

* Making sure we check requestedSlug now

* Feedback and unneeded code

* Reverting unneeded changes

* Unneeded changes

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Vercel subdomain creation in PROD only

* feat: organization settings general and members page (#9266)

* feat: organization settings general page

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* feat: add members page

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* chore: remove

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: use invalidate

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: delete mutation

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: remove organization id

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* chore

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: use zod schema

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* Type fixes

* Reverting changes

* Update UsernameTextfield.tsx

* More reverts

* Update next-auth-options.ts

* Update common.json

* Type fixes

* Include invite token for orgs

* Update org schema

* Make token settings optional as it isnt used in orgs yet

* Fix missing prop

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-06-15 10:27:39 -07:00
Leo Giovanettiandzomars 6880f88dbe Org teams (#9544)
Co-authored-by: zomars <zomars@me.com>
2023-06-15 16:55:45 +00:00
Crowdin Bot 9177fe86dc New Crowdin translations by Github Action 2023-06-15 16:37:15 +00:00
bf3f8acbc0 feat: Enable new booker globally for 3.0 (#9541)
* Update migration to be on by default - remove cookie check

* Use env variable to control enabling NEW_BOOKER for all

* Update packages/prisma/migrations/20230524105015_added_newbooker_feature_flag/migration.sql

* Update turbo.json

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-06-15 16:36:25 +00:00
b4fa9826f2 feat: organizations sidebar (#9395)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-06-15 16:12:47 +05:30
Jeroen ReumkensandPeer Richelsen 955de3133c feat: weekly view calendar improvements (#9491)
* Add correct start/end time for weekly calendar by looking at calendar's availability

* Always show 24h in weekly calendar, added scroll functionality, current time and events in correct timezone

* Improved current time style

* Show slots for every minute, so also odd timeslots due to offsets work

* Show correct timeformat for weekly view on left side time stamps

* Fix data attr for debug

* Position events differently so we can accomodate for offset start times.

* Removed schedule from public event api, because we don't use it anymore

* Fixed alignment of timeslots in weekview calendar.

* Added loading spinner to weekly calendar

* Force weekly view calendar hour labels to show 00 minutes, also for gmt x.5 timezones that are offset 30 mins.

* Change event duration blocks in weekly calendar when user changes duration in multi duration event

* Improved week view slot time label alignments for shorter durations

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-15 09:59:58 +00:00
Jeroen Reumkens faac3d0f57 fix: Fixed merge mistake in next.config breaking new booker redirects. (#9532) 2023-06-15 14:30:44 +05:30
Crowdin Bot 3fb1ede770 New Crowdin translations by Github Action 2023-06-15 08:59:05 +00:00
Hariom Balhara 53224886e3 feat: Routing Forms/Teams Support (#9417) 2023-06-15 08:58:07 +00:00
Udit Takkar e513180d7e fix: check user session in banner (#9530)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-15 09:36:09 +01:00
Udit Takkar 3116d6df1a fix: Email verification banner (#9519) 2023-06-15 11:41:32 +05:30
4284a4d16d feat: Organizations users calendar cache (#9498)
* Initial commit

* Adding feature flag

* feat: Orgs Schema Changing `scopedMembers` to `orgUsers` (#9209)

* Change scopedMembers to orgMembers

* Change to orgUsers

* Letting duplicate slugs for teams to support orgs

* Covering null on unique clauses

* Supporting having the orgId in the session cookie

* feat: organization event type filter (#9253)

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* Missing changes to support orgs schema changes

* feat: Onboarding process to create an organization (#9184)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Making sure we check requestedSlug now

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* feat: [CAL-1816] Organization subdomain support (#9345)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* Covering users and subteams, excluding non-org users

* Unpublished teams shows correctly

* Create subdomain in Vercel

* feedback

* Renaming Vercel env vars

* Vercel domain check before creation

* Supporting cal-staging.com

* Change to have vercel detect it

* vercel domain check data message error

* Remove check domain

* Making sure we check requestedSlug now

* Feedback and unneeded code

* Reverting unneeded changes

* Unneeded changes

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Vercel subdomain creation in PROD only

* Making sure we let localhost still work

* Feedback

* Type check fixes

* feat: Organization branding in side menu (#9279)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Org branding provider used in shell sidebar

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Using org avatar (temp)

* Not showing org logo if not set

* User onboarding with org branding (slug)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Feedback

* Org public profile

* Public profiles for team event types

* Added setup profile alert

* Using org avatar on subteams avatar

* Making sure we show the set up profile on org only

* Profile username availability rely on org hook

* Update apps/web/pages/team/[slug].tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Update apps/web/pages/team/[slug].tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* feat: Organization support for event types page (#9449)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Org branding provider used in shell sidebar

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Using org avatar (temp)

* Not showing org logo if not set

* User onboarding with org branding (slug)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Feedback

* Org public profile

* Public profiles for team event types

* Added setup profile alert

* Using org avatar on subteams avatar

* Processing orgs and children as profile options

* Reverting change not belonging to this PR

* Making sure we show the set up profile on org only

* Removing console.log

* Comparing memberships to choose the highest one

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Type errors

* Refactor and type fixes

* Update orgDomains.ts

* Feedback

* Reverting

* NIT

* fix issue getting org slug from domain

* Improving orgDomains util

* Host comes with port

* Update useRouterQuery.ts

* add org users cache-calendar

* fix typo

* re-use the simple user calendar-cache page

* Apply suggestions from code review

* Update packages/core/CalendarManager.ts

* type fixes

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2023-06-15 00:40:47 +00:00
zomars eadca3b2c0 Update .env.example 2023-06-14 14:45:53 -07:00
Crowdin Bot 68125af29f New Crowdin translations by Github Action 2023-06-14 21:44:55 +00:00
Crowdin Bot d436e628fe New Crowdin translations by Github Action 2023-06-14 21:41:30 +00:00
c5483c81de feat: Organizations (#8993)
* Initial commit

* Adding feature flag

* feat: Orgs Schema Changing `scopedMembers` to `orgUsers` (#9209)

* Change scopedMembers to orgMembers

* Change to orgUsers

* Letting duplicate slugs for teams to support orgs

* Covering null on unique clauses

* Supporting having the orgId in the session cookie

* feat: organization event type filter (#9253)

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* Missing changes to support orgs schema changes

* feat: Onboarding process to create an organization (#9184)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Making sure we check requestedSlug now

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* feat: [CAL-1816] Organization subdomain support (#9345)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* Covering users and subteams, excluding non-org users

* Unpublished teams shows correctly

* Create subdomain in Vercel

* feedback

* Renaming Vercel env vars

* Vercel domain check before creation

* Supporting cal-staging.com

* Change to have vercel detect it

* vercel domain check data message error

* Remove check domain

* Making sure we check requestedSlug now

* Feedback and unneeded code

* Reverting unneeded changes

* Unneeded changes

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Vercel subdomain creation in PROD only

* Making sure we let localhost still work

* Feedback

* Type check fixes

* feat: Organization branding in side menu (#9279)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Org branding provider used in shell sidebar

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Using org avatar (temp)

* Not showing org logo if not set

* User onboarding with org branding (slug)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Feedback

* Org public profile

* Public profiles for team event types

* Added setup profile alert

* Using org avatar on subteams avatar

* Making sure we show the set up profile on org only

* Profile username availability rely on org hook

* Update apps/web/pages/team/[slug].tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Update apps/web/pages/team/[slug].tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* feat: Organization support for event types page (#9449)

* Desktop first banner, mobile pending

* Removing dead code and img

* WIP

* Adds Email verification template+translations for organizations (#9202)

* First step done

* Merge branch 'feat/organizations-onboarding' of github.com:calcom/cal.com into feat/organizations-onboarding

* Step 2 done, avatar not working

* Covering null on unique clauses

* Onboarding admins step

* Last step to create teams

* Moving change password handler, improving verifying code flow

* Clearing error before submitting

* Reverting email testing api changes

* Reverting having the banner for now

* Consistent exported components

* Remove unneeded files from banner

* Removing uneeded code

* Fixing avatar selector

* Org branding provider used in shell sidebar

* Using meta component for head/descr

* Missing i18n strings

* Feedback

* Making an org avatar (temp)

* Using org avatar (temp)

* Not showing org logo if not set

* User onboarding with org branding (slug)

* Check for subteams slug clashes with usernames

* Fixing create teams onsuccess

* feedback

* Feedback

* Org public profile

* Public profiles for team event types

* Added setup profile alert

* Using org avatar on subteams avatar

* Processing orgs and children as profile options

* Reverting change not belonging to this PR

* Making sure we show the set up profile on org only

* Removing console.log

* Comparing memberships to choose the highest one

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Type errors

* Refactor and type fixes

* Update orgDomains.ts

* Feedback

* Reverting

* NIT

* fix issue getting org slug from domain

* Improving orgDomains util

* Host comes with port

* Update useRouterQuery.ts

* Feedback

* Feedback

* Feedback

* Feedback: SSR for user event-types to have org context

* chore: Cache node_modules (#9492)

* Adding check for cache hit

* Adding a separate install step first

* Put the restore cache steps back

* Revert the uses type for restoring cache

* Added step to restore nm cache

* Removed the cache-hit check

* Comments and naming

* Removed extra install command

* Updated the name of the linting step to be more clear

* Removes the need for useEffect here

* Feedback

* Feedback

* Cookie domain needs a dot

* Type fix

* Update apps/web/public/static/locales/en/common.json

Co-authored-by: Omar López <zomars@me.com>

* Update packages/emails/src/templates/OrganizationAccountVerifyEmail.tsx

* Feedback

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-14 21:40:20 +00:00
Keith Williams 9db4a04cd9 chore: Cache node_modules (#9492)
* Adding check for cache hit

* Adding a separate install step first

* Put the restore cache steps back

* Revert the uses type for restoring cache

* Added step to restore nm cache

* Removed the cache-hit check

* Comments and naming

* Removed extra install command

* Updated the name of the linting step to be more clear
2023-06-14 15:27:47 -03:00
Alex van Andel 8943e8c2f6 Fix: Sets null to undefined during workflow select (#9513) 2023-06-14 14:43:42 +00:00
Crowdin Bot f17fa55426 New Crowdin translations by Github Action 2023-06-14 14:39:25 +00:00
Hariom BalharaandLeo Giovanetti 9ff83075d6 Improve IP Ban (#9512)
Co-authored-by: Leo Giovanetti <hello@leog.me>
2023-06-14 16:38:34 +02:00
Jeroen Reumkens 6b6043afdc Added custom error with more details to debug the ciaran event issue (#9482) 2023-06-14 10:47:58 +00:00
Crowdin Bot fd9162e70f New Crowdin translations by Github Action 2023-06-14 09:54:17 +00:00
Jeroen ReumkensandHariom Balhara 8331059b7c feat: new booker embed (#9023)
* Added embed files for new booker routes.

* Updated nextjs config to redirect to correct embed url.

* Notify embed of booker size after animation completes.

* Don't use animations and 100vh in embed.

* Added booker layout toggles to embed settings (wip)

* Booker header positioning tweaks

* Show correct layout in embed

* Don't show pricing event meta if stripe app is not installed

* Support custom border booker for embed

* wip on passing layout prop to iframe for previews

* Only show booker layout settings in embed-create-popup if booker layout feature is enabled.

* Made layout prop in preview state for embed optional

* Made layout prop in preview state for embed optional

* Get layout toggle working

* Fixed types

* Added themebasis prop

* Fix potential circular import that should then fix type errors

* Fixed type error by fixing casing.

* Type fixes

* Added translations

* More translations

* Remove comment

* Removed uneccessary addition to package.json

* Removed todo since it's solved in another way

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-06-14 09:22:44 +00:00
Syed Ali Shahbaz f0992b4914 fix with object undefined check (#9493) 2023-06-13 20:27:42 +00:00
TachyonicBytesandTachyonicBytes e081a4cfc2 fix: Add e2e test for routing forms webhook subscription (#9401)
* add e2e test for routing forms webhook subscription

* remove debugging checks

* fixed missing method for e2e

* remove forced timeout for e2e test

* fix e2e webhook test

* use routing forms page for install

---------

Co-authored-by: TachyonicBytes <support@tachyonicbytes.com>
2023-06-13 15:22:19 +00:00
895b3ca7c9 feat: add paid webhook (#8721)
* feat: add BOOKING_PAID on enums

* feat: trigger the BOOKING_PAID webhook

* refactor: create payment variable

* feat: add REJECTED and REQUESTED on enums

* feat: create migration to booking werbhooks

* Update packages/features/webhooks/lib/constants.ts

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>

* Update packages/prisma/schema.prisma

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>

* Update packages/prisma/migrations/20230513235419_add_booking_webhooks/migration.sql

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>

---------

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-06-13 14:57:59 +00:00
Jaideep GuntupalliandBailey Pumfleet 4d30264950 fix: Multiple In Person Locations not working as expected in Event Setup Tab (#9465)
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-06-13 14:54:53 +00:00
3a352a94f6 fix: phone input update state persistence (#9471)
* fix: phone input update state persistence

* refactor: use spreading

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-13 14:54:13 +00:00
Nikeshkumar TK 8623175612 fix: Routing form two "New" button issue. (#9479)
* event types public api fix

* Routing form new button issue

* Routing form new button issue

* Routing form new button issue

* Routing form new button issue

* Routing form new button issue
2023-06-13 14:53:50 +00:00
Udit TakkarandPeer Richelsen ea531777c4 fix: size of cell (#9486)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-13 11:08:00 +00:00
Soham Datta 2639ef7e13 fix: #9217 | redirected unready /admin to one of its tabs (#9222) 2023-06-13 10:46:41 +00:00
Jeroen Reumkens 0e76a19c96 Pass event duration to schedule api call (#9484) 2023-06-13 10:14:45 +00:00
3ec9eb377d docs: Added command in manual section (#9433)
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
2023-06-12 21:46:29 +01:00
Udit TakkarandBailey Pumfleet 44b7000509 fix: dark mode in Alert component (#9467)
* fix: dark mode in Alert component

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* chore

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-06-12 17:49:44 +00:00
depfu[bot]andHariom Balhara 251307f1e6 chore: Update vite 2.9.15 → 2.9.16 (patch) (#9346)
* Update vite to version 2.9.16

* Upgrade vite to 4.1.2 everywhere

---------

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-06-12 16:51:02 +00:00
Balveer Singh RaoandUdit Takkar 75e638ec4d fix: copy icon for dark mode (#9459)
* fixed copy icon for dark mode

* fix: height

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-12 16:48:37 +00:00
Crowdin Bot 443ccdd6c0 New Crowdin translations by Github Action 2023-06-12 16:28:32 +00:00
Abhishek Sunil dbf11cc04b test: Add E2E test to verify theme change (#9455)
* Add E2E test to verify theme change

* PR fixes
2023-06-12 16:14:40 +00:00
Crowdin Bot a5c9729f5f New Crowdin translations by Github Action 2023-06-12 10:57:30 +00:00
sean-brydon a6e2983a22 Fix translations (#9466) 2023-06-12 10:43:50 +00:00
Meet Patel a21f0c46c7 enabled csv upload for team bulk invites (#9446) 2023-06-11 09:36:59 +00:00
Udit Takkar ed4a81e852 fix: theme in new booker (#9453)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-11 09:11:46 +00:00
9231218350 fix: carify what sender ID means (#9431)
* add tooltip on info icon

* fix text

* fix UI in addActionDialog

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-06-11 03:20:13 +00:00
7d1ea4ee2b chore: moved viewport meta from document to PageWrapper (#9406)
* moved viewport meta from document to _app

* moved viewport meta from _app.tsx to PageWrapper.tsx

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
2023-06-10 15:19:17 +00:00
Efraín Rochín 0c68e51930 fix: [CAL-1765] opt-in: clicking "confirm" or "reject" broken (#9443)
* Add support to a custom sessionGetter in trpc createContext

* type fixes
2023-06-10 11:02:50 +00:00
Alex van Andel 8e565dc610 v2.9.8
release.yml / release (push) Canceled after 0s
2023-06-10 12:46:24 +02:00
Rob JacksonandUdit Takkar 5b47844fa1 fix: Able to toggle off timeFormat on new booker UI (#9442)
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
2023-06-10 07:51:49 +00:00
Rob JacksonandEfraín Rochín 0d01d3246a test: Add E2E tests for seated attendee rescheduling or cancelling bookings (#9422)
* Add test for attendees rescheduling bookings

* Add tests for rescheduling seated bookings (first attendee)

* Fix tests not skipping disabled times on new booker UI

* Add tests for rescheduling seated bookings (all attendees)

* Remove duplicate tests (my mistake)

* Add explicit test ids for cancel inputs

* Add E2E tests for seated attendees cancelling their bookings

* Update E2E tests for a seated attendee rescheduling their booking

* Update tests to remove dependence on localised text

* Updated seated E2E tests to remove testing of unused URL

---------

Co-authored-by: Efraín Rochín <roae.85@gmail.com>
2023-06-10 03:47:50 +00:00
Alex van AndelandEfraín Rochín bb31c4ba14 fix: Prevent invalid host assignment (#9441)
* Avoids invalid hosts

* Fixed test selector, instead using react-select-2-listbox

* Different way of selecting the managed user

* Convert select-option- to value instead of label

* Replaced all instances of networkidle

* done rewriting test

* Fix prisma is not defined error

* Depend on inner text rather than testid

* Fill of team create is unstable

* Removed console.log

---------

Co-authored-by: Efraín Rochín <roae.85@gmail.com>
2023-06-10 02:39:49 +00:00
Crowdin Bot d9a7952467 New Crowdin translations by Github Action 2023-06-09 22:33:12 +00:00
Balveer Singh Rao 208dcbbda3 fixed Rotate spinner (#9429) 2023-06-09 22:21:54 +00:00
Crowdin Bot ff4494d395 New Crowdin translations by Github Action 2023-06-09 20:45:51 +00:00
Udit Takkar db4b32119e fix: UI bugs (#9435)
* fix: toggle group background

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: background

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* chore

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: confirm modal

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: dark mode footer

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: change tootltip

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-09 20:32:35 +00:00
Carina WollendorferandCarinaWolli bfef5b1877 fix: team bio (#9438)
* fix bio rendering

* fix type error

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-06-09 12:50:35 +00:00
Carina WollendorferandCarinaWolli 91962cc90b check that input teamId equals webhook team (#9434)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-06-09 11:18:59 +00:00
Carina WollendorferandCarinaWolli 7a71a5ddd4 fix error when updating event type availability (#9428)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-06-09 10:19:49 +00:00
Jeroen Reumkens ca47a589ba feat: weekly view for new booker. (#9389)
* WIP on weekly view for new booker.

* Set responsive grid height for booker weekly view.

* Fixed types

* Ensure you can't click on disabled dates in weekly calendar

* CAL-1916: Improvements for blocked out parts background blocks, made the lines connect by using a shared background.

* Margin, padding and color tweaks for new booker CAL-1911

* Made week view have more days visible by default

* Fix to prevent layout switch from breaking when clicking same layout twice.
2023-06-09 09:38:18 +00:00
Crowdin Bot a33dbd8922 New Crowdin translations by Github Action 2023-06-09 08:31:50 +00:00
aaab4ca741 refactor: TwoFactor.tsx (#9392)
* Update TwoFactor.tsx

* fix: useeffect

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-09 08:19:33 +00:00
Crowdin Bot 6aadf7429d New Crowdin translations by Github Action 2023-06-08 16:57:52 +00:00
GitStart-Cal.comandgitstart-calcom 748307bc91 fix: Wrong padding on modals - second version (CALCOM-8414) (#9419)
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
2023-06-08 16:45:06 +00:00
Crowdin Bot 559389a319 New Crowdin translations by Github Action 2023-06-08 14:37:40 +00:00
Ninad Trivedi a9140b6a76 Scrollbar bug fixed (#9357) 2023-06-08 14:25:23 +00:00
Crowdin Bot 8f50e873c9 New Crowdin translations by Github Action 2023-06-08 13:53:38 +00:00
9b28b7f78a fix: remove duplicate value i18n (#8547)
* fix: remove duplicate value i18n

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* feat: add duplicate check in next config

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: remove more duplicates

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: description on two factor page

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* Update apps/web/next.config.js

* Update apps/web/next.config.js

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-08 13:37:54 +00:00
Crowdin Bot 4417097f97 New Crowdin translations by Github Action 2023-06-08 12:45:11 +00:00
Jeroen Reumkens 93fc036d2c feat: Made booker layout settings more user friendly (#9397)
* Made booker layout settings more user friendly

* Fixed tyeps and default values in appearance form for booker layout

* Enable all layouts by default
2023-06-08 12:32:17 +00:00
Omar López 7f13fc58b9 v2.9.7
release.yml / release (push) Canceled after 0s
2023-06-07 16:02:32 -07:00
alannncandAlex van Andel 527d1f6c93 fix: remove bg-color (#9408)
* remove bg-color

* Update packages/app-store/_components/AppCard.tsx

Fix lint error trailing ,

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-06-07 16:02:32 -07:00
Omar López 0ec3c496d8 fix: missing company name in emails (#9409) 2023-06-07 16:02:32 -07:00
Jeroen Reumkens 62ec3de0b1 Recurring event doesn't neccessarily mean an event that requires confirmation. We need to show the recurring option nevertheless. (#9393) 2023-06-07 16:02:32 -07:00
Jeroen Reumkens 2c47cb6a3b Only take owner data we need in public event api, instead of everything. Saves bandwidth. (#9394) 2023-06-07 16:02:32 -07:00
Jeroen Reumkens dc2b145843 Show header layout in large views even if theres only one layout enable. Don't show toggle though. (#9398) 2023-06-07 16:02:32 -07:00
Nafees Nazik c958e1578a feat: use the correct locale for the title (#9286) 2023-06-07 16:02:32 -07:00
Crowdin Bot 1e857e5c0a New Crowdin translations by Github Action 2023-06-07 20:08:38 +00:00
Peer Richelsen 9bc8d48415 fix: leading none in shell (#9404) 2023-06-07 19:57:10 +00:00
f86c6734a7 fix: Wrong padding on "Invite Team Members" modal (CALCOM-8414-FIX) (#9273)
* Fix margin from invitation modal content

* Change margin to padding in Dialog component, so the divider absolute property works properly

* Update Dialog.tsx padding from the button top from 24px to 16px

* Change Dialog content padding to match figma design, having the padding bottom 16px

* Update FormBuilder.tsx to match figma

* Update FormBuilder.tsx Dialog content inner div paddings

* Update FormBuilder.tsx, remove relative to fix divider

* Fixing padding across dialogs

* nit

* Fixes e2e

* undo wrong padding

* fixed footer with divider

---------

Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: zomars <zomars@me.com>
2023-06-07 19:55:47 +00:00
HitenandPeer Richelsen 3d5ff82062 Fix width issue in general setting (#9388)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-07 11:08:29 +00:00
Crowdin Bot 8b63483e2e New Crowdin translations by Github Action 2023-06-07 10:56:44 +00:00
TheOnlyWayUpandPeer Richelsen c97d4288c0 typo(README): 'concent' -> 'consent' (#9356)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-07 11:55:45 +01:00
Hariom Balhara ff75364f22 Fix embed detection (#9385) 2023-06-07 08:43:12 +00:00
Crowdin Bot 7f1b028099 New Crowdin translations by Github Action 2023-06-07 07:40:33 +00:00
9e70a985e4 feat: email verification (#9081)
* Verify - inital email commit

* Add token type - api redirect - migration

* Redirect and valid api callback route

* Update email design

* Change signup URL to redirect to verify-email

* Add feature flag - add a11y text to email - add top banner

* Shell shouldnt redirect to onboarding if the user needs to verify account

* Move flag check to server

* Cleanup

* Rate limit

* Fix redirects

* Remove api signup mess

* Double negation for forced bool

* Fix props

* Update packages/emails/templates/account-verify-email.ts

* Enable migration by default

* Fix typos

* Fix google verify issue

* Update packages/features/auth/lib/verifyEmail.ts

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>

* NITS: @harioms addressed

* Remove schema changes

* Fix NITs+ improvments

* Update apps/web/pages/api/auth/verify-email.ts

Co-authored-by: Omar López <zomars@me.com>

* Update packages/features/ee/common/components/LicenseRequired.tsx

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/pages/api/auth/verify-email.ts

Co-authored-by: Omar López <zomars@me.com>

* Always preloads feature flags

* Update verifyEmail.ts

* Update schema.prisma

* Type fix

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-06-07 07:27:48 +00:00
Crowdin Bot 057cf273dd New Crowdin translations by Github Action 2023-06-07 02:15:50 +00:00
Omar López 9af621294d fix: Prevents undefined features flags on first render (#9374) 2023-06-07 02:03:52 +00:00
zomars bfb5a31032 Fix broken test introduced in #9085 2023-06-06 17:35:03 -07:00
Hariom BalharaandOmar López 6308955e89 fix: embed non-transparent dark background on success page (#9085)
* Fix colorscheme dark on success page due to embed not detected properly there

* Use calNamespace in getEmbediframe

* Fix missing variable

* Update basic.e2e.ts

---------

Co-authored-by: Omar López <zomars@me.com>
2023-06-06 23:52:13 +00:00
Crowdin Bot b0c5b629d7 New Crowdin translations by Github Action 2023-06-06 23:52:45 +00:00
10f965570b feat: Add copy invite link (#8355)
* feat: Add shared invite link

* refactor: Rename Invite to Team Invite model

* feat: add admin check for team invite link procedures

* Replace TeamInvite with VerificationToken

* Add team invite null checks

* Migrates tRPC procedures to new format

* Type fixes

* Update common.json

---------

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-06 23:34:14 +00:00
Udit TakkarandPeer Richelsen c24f5200f5 fix: opt in booking from email (#9358)
* fix: opt in booking from email

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: undo this

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: type error

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: type error

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: Avada Kedavra type errors

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-06 21:04:06 +00:00
zomars f922692a1a Sync yarn.lock with website 2023-06-06 12:07:37 -07:00
Crowdin Bot 65c137f67d New Crowdin translations by Github Action 2023-06-06 18:44:00 +00:00
Efraín Rochínandzomars 585679969a perf: Avoid useless dependencies in calendar cache page (#9290)
* increases the time range to cover all time zones

* it isolates the getCachedResults and rename to getCalendarsEvents

* remove unrelated changes

* remove unrelated changes

---------

Co-authored-by: zomars <zomars@me.com>
2023-06-06 18:30:29 +00:00
Crowdin Bot 893b67b6c4 New Crowdin translations by Github Action 2023-06-06 18:16:49 +00:00
Crowdin Bot 3c296b440e New Crowdin translations by Github Action 2023-06-06 18:15:56 +00:00
Crowdin Bot f8a59b52f7 New Crowdin translations by Github Action 2023-06-06 18:14:59 +00:00
Efraín RochínandKeith Williams 17d106cfda chore: Replace UI login with api login on e2e tests (#9344)
* Replace the ui login with api login

* test api login

* go to first page after login in some tests

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-06 18:02:32 +00:00
Crowdin Bot dcf9d30382 New Crowdin translations by Github Action 2023-06-06 17:48:34 +00:00
eafd7f6b77 fix: Disabled pinch to zoom on mobile devices#9155 (#9163)
* Disabled pinch to zoom on mobile devices#9155

* Modified the better fix to the feature

* Update apps/web/pages/_document.tsx

* Update apps/web/pages/_document.tsx

* Update apps/web/styles/globals.css

* Update apps/web/pages/_document.tsx

* Update apps/web/pages/_document.tsx

* Update apps/web/pages/_document.tsx

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-06 17:35:19 +00:00
f31165b442 feat: event settings booker layout toggle (#9082)
* WIP for adding booker layout toggle in event settings pages

* Prevent form error from getting form stuck in loading state

* Fixed types for bookerlayouts settings and preselect correct layout in booker

* Added defaultlayout settings to profile too, and use that in booker plus as default for events.

* Made layout settings responsive

* Added feature toggle for new layout settings

* Fixed user builder for tests by adding defaultlyotu

* Show toggles on booker for layout switch based on selected layouts. Also added a small fix for the settings toggles to preselect the correct toggle for defaultlayout when user profile settings are used.

* Used zod parse to fix type errors.

* Fix unit test

* Set selected date to today in datepicker when week or column view is default layout. It uses that date to show in the title bar.

* Moved booker layout settings to event and user meta data instead of new db column.

* Converted booker layout strings into an enum.

* Renamed booker layouts feature flag and deleted unused v2 booker feature flag.

* Update packages/trpc/server/routers/viewer/eventTypes/update.handler.ts

Co-authored-by: Omar López <zomars@me.com>

* Fix import

* Fix lint warnings in EventTypeSingleLayout

* Fixed bug where when selected date was passed via query param page booking form wouldn't automatically show up. It would still serve you the date selection. This should fix e2e tests.

* Fixed layout header.

* Enabled booking layout toggle feature flag.

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-06-06 15:31:43 +00:00
Crowdin Bot 40c5d5871e New Crowdin translations by Github Action 2023-06-06 14:09:06 +00:00
Jeroen Reumkensandsean-brydon 2362754356 feat: CAL-1674 Added new header layout for new booker. (#9227)
* CAL-1674: Added new header layout for new booker.

* Removed unneccesary bg style for toggle group, since it's already the default bg color.

* Fixed types

* Gave minwidth to booker header date title, to prevent arrows for switching weeks from jumping around.

* Push small calendar down

* Fixed overflow in small calendar view

* Added booker modal padding underneath badges

* Fixed grid area name causing broken animation. Also use setstyle directly instead of using animate for non animated properties. Performs better and removes some errors by framer motion for non animatable units like 'auto'.

---------

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2023-06-06 13:55:27 +00:00
Crowdin Bot 8ccf3b589e New Crowdin translations by Github Action 2023-06-06 12:14:47 +00:00
2dbc73c75b chore: fix all Typescript warnings (#8618)
* [CAL-1517] fix all Typescript warnings

* solve conflicts

* Update stripeCheckoutSession.handler.ts

Parse is a guard, so even though the variable is unused the parse itself is needed.

* Update ToolbarPlugin.tsx

Don't change dependency tree

---------

Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-06-06 11:59:57 +00:00
Ben Hybert 87e1ad7115 chore: switch over to use variable for app/companyName (#9334)
* switch over to use variable for app/companyName
* enable_apps_description - appName
* recording_from_your_recent_call - appName
* the_calcom_team - companyName
* calcom_is_better_with_team - appName

* capitalise 'S' in teams page.
2023-06-06 11:58:05 +00:00
il3ven 2e9895aceb add telegramvideo to packages/app-tore/index.ts (#9324)
`telegramvideo` seems to be missing and causing issue #9308
2023-06-06 11:24:54 +00:00
fbbc573f33 chore: remove deprecated metamask and rainbow (#9299)
* Remove deprecated code related to rainbow

* Remove translations for rainbow specific features

* Remove english translations for metamask

* Remove translations for metamask

* Fix lint issues

* Fix prettier issues

* update yarn lock

* Generated yarn.lock with submodules

* Added auth submodule deps

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-06-06 11:18:44 +00:00
Piyush GargandPeer Richelsen 8bc8a045b6 feat: email undefined value (#9240)
* Fix: #9210

* Fix: #9215 Added Password Validation to App Signup

* FIX #9216 Fixed the Update Button Allignment

* Fix #9238: Don't render descripiton in email template if undefined

* Remove Prev Changes

* Remove unwanted space

* Revert yarn.lock

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-06 10:03:40 +00:00
Crowdin Bot 8c049b29b3 New Crowdin translations by Github Action 2023-06-06 09:47:49 +00:00
ravi kunwarandUdit Takkar f1e783f047 fix: Availability Name does Not Update (#9322)
* fix: Availability Name does Not Update

* fix: use i18n in navigation

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-06 09:33:34 +00:00
Crowdin Bot 3baa6c7145 New Crowdin translations by Github Action 2023-06-06 07:17:36 +00:00
dd28bb46db fix: title (#9055)
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-06 07:04:54 +00:00
c182091fa9 fix: /event-type /apps - doesn't match designs (#9317)
* updated AppCard comp for design changes

* updated rainfallForm for design changes

* Fix:: event-type/apps design issues

* Update apps/web/components/eventtype/EventAppsTab.tsx

* Update packages/app-store/_components/AppCard.tsx

* Update packages/app-store/_components/AppCard.tsx

* Fix lint

---------

Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-06-05 22:49:27 +00:00
Crowdin Bot d061572ed6 New Crowdin translations by Github Action 2023-06-05 22:34:31 +00:00
Ujwal Kumarandalannnc 3a943fbc81 Fix background colour for show on booking page switch on event types page (#9318)
Co-authored-by: alannnc <alannnc@gmail.com>
2023-06-05 22:24:10 +00:00
Crowdin Bot 8a58a51a2c New Crowdin translations by Github Action 2023-06-05 12:20:39 +00:00
Crowdin Bot e92265ceaa New Crowdin translations by Github Action 2023-06-05 12:19:41 +00:00
Udit Takkar b7b1fff1c0 fix: hide 2fa tab when using google as identity provider (#9333)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-06-05 12:04:48 +00:00
Crowdin Bot 886f7021f4 New Crowdin translations by Github Action 2023-06-05 10:13:18 +00:00
Alex van Andel 2b17188087 Fixup tsconfig.json in packaged embed-react (#9330) 2023-06-05 09:57:53 +00:00
Ayush Mainali d498988bd4 fix: fixes page rendering comments initially (#9270) 2023-06-05 09:55:10 +00:00
Hariom Balhara 785a08ba2c Fix duplicate query param missing issue (#9328) 2023-06-05 09:50:34 +00:00
Hariom BalharaandBailey Pumfleet 6aa83102e4 Add stricter self-review guideline (#9327)
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-06-05 11:00:04 +01:00
Ujwal Kumar 97fe41f3ba Fix hardcoded label of identifier label in form builder (#9249) 2023-06-05 09:47:08 +00:00
Piyush GargandPeer Richelsen b7cecfbb66 fix: Skeleton Padding and Width Issue (#9310)
* Fixed the Skeleton Padding and Width Issue

* Fix the Icon Bounce on Skeleton

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-05 09:24:16 +00:00
Anwar Sadath 7f7d80e653 fix: /getting-started/connected-calendar Toggle the first calendar on (#9028)
* [CAL-115] /getting-started/connected-calendar Toggle the first calendar on

* Fix lint error

* Fix error shown after completion of onboarding by connecting to calendars and playing around with toggle

* Fix type errors

* Fix first calendar selected even in all the screens wherever connectedCalendars is used
2023-06-05 09:21:50 +00:00
Ujwal Kumarandsean-brydon 64796a96fc Fix alignment of update and cancel button on sign up flow (#9218)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2023-06-05 09:16:28 +00:00
Crowdin Bot 83cc7dc86e New Crowdin translations by Github Action 2023-06-05 09:23:16 +00:00
Nafees Nazik 75c9145558 feat: add disable signup feature flag (#9274)
* feat: add feature flag

* feat: use the feature flag
2023-06-05 09:08:16 +00:00
Nafees Nazik 869f459d98 fix: title in booking submitted page (#9326) 2023-06-05 07:28:03 +00:00
Crowdin Bot e00008b663 New Crowdin translations by Github Action 2023-06-05 06:04:16 +00:00
175f2482e1 fix: Update forms UI (#8093)
* Routing Forms: Update forms UI

* fix failing test

* fix: Routing Forms forms UI Update

* fix: Routing Forms forms UI Update

* Apply suggestions from code review

---------

Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-06-05 05:51:19 +00:00
Crowdin Bot 9d91d72a72 New Crowdin translations by Github Action 2023-06-04 18:58:28 +00:00
Ujwal Kumar fd9cd1b98b fix: background colour for disabled select option (#9320)
* Fix disabled bg colour in CheckedTeamSelect

* Fix disabled bg colour in CheckedSelect, CheckedUserSelect, ChildrenEventTypeSelect
2023-06-04 18:46:19 +00:00
Crowdin Bot 2640040359 New Crowdin translations by Github Action 2023-06-03 11:13:34 +00:00
alannnc dec8f8e896 add team validations (#9300) 2023-06-03 11:02:23 +00:00
Efraín RochínandOmar López b4eff25636 fix: Issues with calendar sync at the beginning and end of month (#9282)
* increases the time range to cover all time zones

* remove console.log

---------

Co-authored-by: Omar López <zomars@me.com>
2023-06-02 20:17:53 +00:00
Alex van Andel 2a752e5358 v2.9.6
release.yml / release (push) Canceled after 0s
2023-06-02 22:18:28 +02:00
Syed Ali Shahbaz b2684837c1 Remove end as mandatory property (#9297) 2023-06-02 20:01:30 +00:00
Crowdin Bot 2fed2133a5 New Crowdin translations by Github Action 2023-06-02 19:44:04 +00:00
Alex van Andel 7fc0877c26 Set reqBody.end to start + eventType.length (#9296) 2023-06-02 19:29:52 +00:00
Crowdin Bot f7ce774ddc New Crowdin translations by Github Action 2023-06-02 18:42:40 +00:00
174c730f1f chore: add canonical to the document via PageWrapper (#8639)
* add canonical to the document via `PageWrapper`

* use WEBSITE_URL constant to create the canonical url value

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-02 18:28:03 +00:00
Syed Ali Shahbaz 8ad513e4ec fix typo in swagger (#9278) 2023-06-01 21:09:18 +00:00
a0bf5b4067 test: Smoke Tests for packaged embeds and build improvements (#9169)
* Fix 2 Factor Auth

* Add a sandbox to verify types of embed-react

* Add fault types location

* Fix type location again

* Break types

* Ensure that builds are done again when doing pbublish

* Debug failure in CI

* Make sure unit test files arent used by playwright

* Fix embed-react test description

* Update .github/workflows/e2e-embed-react.yml

Co-authored-by: Omar López <zomars@me.com>

* Remove unnecessary log

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Omar López <zomars@me.com>
2023-06-01 20:41:30 +00:00
Hariom BalharaandOmar López 484f603c9e fix: Routing Forms, Number operators were using string operands (#9182)
* Fix operators for number

* Add number operator unit tests

* Fixes and remove between operators

---------

Co-authored-by: Omar López <zomars@me.com>
2023-06-01 20:29:13 +00:00
zomars 94b16fb327 Update yarn.lock 2023-06-01 12:29:49 -07:00
Jeroen Reumkens 55db7bdf76 Make new booker work with private links (#9260) 2023-06-01 18:55:43 +00:00
Crowdin Bot 14af241d5f New Crowdin translations by Github Action 2023-06-01 18:57:05 +00:00
Keith Williams 4efa90e42f chore: Upgrade turbo (#9271)
* chore: Upgrade turbo

* Pinned turbo version

* Revert "Pinned turbo version"

This reverts commit ae263009ee4750943e25efe62052152b40655844.

* Upgraded to 1.10.1
2023-06-01 18:43:21 +00:00
Peer Richelsen 581e1759c4 chore: prevent merge conflicts in common.json (#9268) 2023-06-01 15:47:43 +00:00
Crowdin Bot 61cdac321e New Crowdin translations by Github Action 2023-06-01 15:09:08 +00:00
Ayush MainaliandPeer Richelsen 59a04137a1 fix: fixed width resizing of colorpicker (#9233)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-01 14:53:39 +00:00
Crowdin Bot eba1a1ffff New Crowdin translations by Github Action 2023-06-01 12:30:28 +00:00
Nafees Nazik df25b179d7 fix: use skeleton loader (#9264) 2023-06-01 12:17:11 +00:00
Ted Spare ff2d9ad67d Use github-script to safely label PRs from forks (#9256) 2023-06-01 11:48:36 +00:00
Crowdin Bot 485b72cd0d New Crowdin translations by Github Action 2023-06-01 11:56:48 +00:00
Jeroen ReumkensandPeer Richelsen 57eb5a4328 Fix for booker colors in dark mode, we can't use bg-default in both places because we use a custom background in dark mode. Otherwise it would be a similar color in dark. So we need to supply a custom dark mode color. (#9259)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-01 11:38:52 +00:00
Peer Richelsen 2c4954e31c Update package.json
release.yml / release (push) Canceled after 0s
2023-06-01 12:43:56 +01:00
Alex van Andel 748f2b42e8 Remove debugger; calls (#9262) 2023-06-01 11:28:59 +00:00
Nafees NazikandKeith Williams 6bc713bc2e feat: add additional parameters for QR code generator app (#9177)
* fix: add i18n key

* fix: add additional parameters

* fix: query params

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-01 10:13:54 +00:00
Hariom Balhara b1019d6bab fix: [Hotfix]No phone number is valid (#9258)
* Fix invalid phone number always

* Fix countrycode detection
2023-06-01 09:47:18 +00:00
Nafees Nazik 268f1872e4 fix: layout effect hook warning (#9226)
* feat: add isomorphic hook

* feat: use useIsomorphicLayoutEffect hook
2023-06-01 09:45:24 +00:00
Efraín RochínandKeith Williams 60d439cc32 prevents revalidation errors from reaching the when editing an event type (#9191)
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-06-01 09:16:30 +00:00
Crowdin Bot 36d201ac20 New Crowdin translations by Github Action 2023-06-01 08:01:31 +00:00
d6644bc232 feat: Customise JITSI Url path (#8835)
* Closes #1847 - adds an environment variable `JITSI_HOST_URL` to configure the Host URL for self hosted instances

* Closes #1847 - adds an environment variable `JITSI_HOST_URL` to configure the Host URL for self hosted instances

* Closes #1847 - adds an environment variable `JITSI_HOST_URL` to configure the Host URL for self hosted instances

* Replace Tab with spaces

* Add JITSI_HOST_URL env

* Remote Tabs for Spaces

* Support jitsi_host key

* Remove ENV, add Interface jitsi host URL and fallback

* Fix linting issues

* Clean code

* add missing await

* Add configurable meeting slug

* Refactor to jitsiHost, remove slug generator

* zod default doesnt work right now. So remove it

* Add replacement values and url encoding

* Change Placeholder to unified values.

---------

Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-06-01 07:48:01 +00:00
alannnc 7a9b893931 Add startOf endOf day for date range (#9252) 2023-05-31 22:12:04 +00:00
Crowdin Bot 235c314e68 New Crowdin translations by Github Action 2023-05-31 21:02:11 +00:00
Omar López 831253e057 v2.9.5
release.yml / release (push) Canceled after 0s
2023-05-31 14:01:14 -07:00
Crowdin Bot d9527902e6 New Crowdin translations by Github Action 2023-05-31 21:00:30 +00:00
Omar López 290ff79c86 feat: Ports getSchedule to public API (#9254)
* Ports getSchedule to public API

* Typefix
2023-05-31 20:46:54 +00:00
Crowdin Bot 8618df09e5 New Crowdin translations by Github Action 2023-05-31 19:02:21 +00:00
Alex van Andel 6a56c12ef1 Only include accepted users, ignore all pending, unregistered or not (#9250) 2023-05-31 18:48:32 +00:00
Peer Richelsen 64ae135f90 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-31 17:54:27 +01:00
Crowdin Bot b18f77c957 New Crowdin translations by Github Action 2023-05-31 16:47:18 +00:00
Peer Richelsen 98da15e801 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-31 17:46:38 +01:00
Nafees Nazik 90b0d24c1e fix: remove duplicate i18n key (#9234) 2023-05-31 16:33:29 +00:00
Crowdin Bot 34d728cae0 New Crowdin translations by Github Action 2023-05-31 16:31:11 +00:00
Syed Ali Shahbaz 3eedeb603d fix: Allows team owners and team admins to query team availability (#9245)
* allows team owners and team admins to query team availability

* code imp

* add type for memberRoles

* further type adjustments

* \_(o.o)_/

* type

* type..
2023-05-31 16:17:26 +00:00
Syed Ali Shahbaz 885bfdade4 feat: adds paymentID and allow attendeeEmail filtering in Booking API (#9143)
* adds payment id to return in GET bookings

* Delete .gitkeep. Unintended

* Delete Licenses. Unintended commit

* initial working code for attendeeEmails filter

* improve code readability

* adds multiAttendee validation akin to multi userId

* code improvement

* adds swagger format email
2023-05-31 12:35:30 +00:00
Crowdin Bot 1382d3bc56 New Crowdin translations by Github Action 2023-05-31 12:50:34 +00:00
Crowdin Bot 9068b221c8 New Crowdin translations by Github Action 2023-05-31 12:49:38 +00:00
Crowdin Bot b8be61947a New Crowdin translations by Github Action 2023-05-31 12:48:45 +00:00
Crowdin Bot 41811db5aa New Crowdin translations by Github Action 2023-05-31 12:47:54 +00:00
Crowdin Bot 39ba1bcdaf New Crowdin translations by Github Action 2023-05-31 12:47:06 +00:00
Crowdin Bot d8943274d1 New Crowdin translations by Github Action 2023-05-31 12:46:07 +00:00
Crowdin Bot 67082198aa New Crowdin translations by Github Action 2023-05-31 12:45:09 +00:00
Crowdin Bot db5dbdea40 New Crowdin translations by Github Action 2023-05-31 12:44:17 +00:00
Crowdin Bot 08eba7077d New Crowdin translations by Github Action 2023-05-31 12:43:26 +00:00
Crowdin Bot ecf5e7c7b7 New Crowdin translations by Github Action 2023-05-31 12:42:34 +00:00
Jeroen Reumkens 220023f403 feat(UI): improvements booker (#9221)
* Changed background from muted to default

* Improved skelleton color for loading states. Also prevented scrollbar in available timeslots loading state by showing less skeletons.

* Moved description to top, above other event meta, since this block doesnt have an icon and looks better this way.
2023-05-31 12:30:09 +00:00
Crowdin Bot 0d4e625041 New Crowdin translations by Github Action 2023-05-31 08:57:40 +00:00
Crowdin Bot 3f736e8b80 New Crowdin translations by Github Action 2023-05-31 08:56:49 +00:00
Hariom Balhara 9394c09247 Remove cache-db from without database build (#9220) 2023-05-31 09:55:57 +01:00
Crowdin Bot e7ab400d29 New Crowdin translations by Github Action 2023-05-31 04:46:32 +00:00
92012dab09 fix: wrong description in Calendar Invite after rescheduling meeting (#8576)
* added instructions for setup on windows to avoid symbolic link issues

* fixed wrong description after rescheduling

* Update README.md

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-31 04:33:52 +00:00
Crowdin Bot 26f0a14ac2 New Crowdin translations by Github Action 2023-05-31 03:16:45 +00:00
7a9a2fc76f feat: Make database optional when building (#8561)
* Make database optional when building

Solves #3026 and #6780

We have a few app-store related pages that require a database connection at build time.

This change adds try-catch blocks in getStaticPaths or getStaticProps for those pages, and when no database is available we either:

- getStaticPaths: Respond with no paths, but fall back to rendering the pages on-demand
- getStaticProps: Respond with no data, but enable revalidation until a future request does respond with data

This makes Cal.com more compatible with typical Docker-based workflows, that do not expect external services to be available at build time. This includes Docker-based hosting providers, such as Cloudron (#3026).

* Change apps/categories/index to be server-rendered

* Update yarn.lock

* Update yarn.lock

* Update [category].tsx

---------

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-31 03:04:06 +00:00
Keith Williams 991167fb8b Removed extra db-seed call since we use cache-db (#9212) 2023-05-31 00:13:28 +00:00
Omar López 451278b48e fix: routing-form flakyness (#9214) 2023-05-30 21:15:57 +00:00
Nafees NazikandKeith Williams e6f142dc9e fix: event editor not rendered (#9172)
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-30 19:38:17 +00:00
Nafees Nazik 951709edef fix: use ip address in forgot password rate limitation (#7832)
* feat: use IP address for rate limiting

* fix: use mail as the last choice

* fix: fallback to ip

* fix: endpoint

* fix: endpoint
2023-05-30 19:26:29 +00:00
Crowdin Bot 6cf8083b02 New Crowdin translations by Github Action 2023-05-30 19:01:13 +00:00
Crowdin Bot 3fe32d2a9b New Crowdin translations by Github Action 2023-05-30 19:00:26 +00:00
Crowdin Bot dc02443a33 New Crowdin translations by Github Action 2023-05-30 18:59:41 +00:00
Crowdin Bot f785ab553a New Crowdin translations by Github Action 2023-05-30 18:58:49 +00:00
Crowdin Bot 92c015ec83 New Crowdin translations by Github Action 2023-05-30 18:58:03 +00:00
Crowdin Bot 60bfdc0adc New Crowdin translations by Github Action 2023-05-30 18:57:09 +00:00
Crowdin Bot ae52c83010 New Crowdin translations by Github Action 2023-05-30 18:56:22 +00:00
Crowdin Bot 1c9a549c10 New Crowdin translations by Github Action 2023-05-30 18:55:26 +00:00
Crowdin Bot 4e55b88ec9 New Crowdin translations by Github Action 2023-05-30 18:54:27 +00:00
Crowdin Bot c87ada5646 New Crowdin translations by Github Action 2023-05-30 18:53:41 +00:00
Crowdin Bot d2af42431c New Crowdin translations by Github Action 2023-05-30 18:52:45 +00:00
Crowdin Bot 8a96fc7905 New Crowdin translations by Github Action 2023-05-30 18:51:53 +00:00
787edd28c7 fix: Popular Apps Slider (#9189)
* Fixes Popular Apps Slider

* Update PopularAppsSlider.tsx

* Reverts env cache

* Revert

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-30 18:36:48 +00:00
Keith Williams 2e379653a4 chore: Shard E2E tests (#9206)
* Shard E2E tests

* Updated shards to 5

* Removed action triggers used for testing
2023-05-30 17:31:21 +00:00
4541845340 feat: Use team logos for various meta icons (#8955)
* Use team logos for various meta icons

* Automatically resize team icons for different uses

* Fix api/logo error when unable to find a team

* Avoid loading image-optimizer in api/logo when not needed

---------

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-05-30 16:31:49 +00:00
Crowdin Bot 59f9cf8aa3 New Crowdin translations by Github Action 2023-05-30 16:45:20 +00:00
7c46d1b348 chore: Cleanup full raw avatar responses from tRPC endpoints (#8901)
* [CAL-1383] Cleanup full raw avatar responses from tRPC endpoints

* Cleanup additional handlers where base64 images were sent through the response

* Add 'image' correctly to the profiles array

---------

Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-30 16:30:19 +00:00
a6330c0fc8 chore: Rounding, frames and radio buttons of the booking forms not consistent (#8705)
* Rounding, frames and radio buttons of the booking forms not consistent

* Updates

---------

Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-30 15:47:22 +00:00
f72296c323 fix: footer in modals (#8940)
* [CAL-1543] Fix the footer in modals

* change request

* update style

* fix modal height

* Lint fix

* Fix the footer in modals

---------

Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-05-30 15:44:24 +00:00
93c4211da4 change request (#9075)
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-05-30 15:43:24 +00:00
ea063dd487 feat: Add new events to webhook BOOKING_CONFIRMED, BOOKING_REJECTED (#8884)
* test: booking rejection

* test: check if webhook is called

* feat: BOOKING_REJECTED enum ,constant in backend

* feat: send booking rejected webhook to subscribers

* feat: add Booking rejected migration

* calendar event

* Revert "calendar event"

This reverts commit 28d45dccfdd3788f0124f9be8783161b1156cd09.

* feat: BOOKING_REQUESTED enum, constant, migration

* feat: Send BOOKING REQUESTED Webhook call

* feat: Add booking rejected/requested event in form

* feat: data-testid to rejection confirm btn

* test: BOOKING_REJECTED, BOOKING_REQUESTED

* fix: booking status PENDING, Linting

* feat: add new labels to common.json

* remove: meeting ended hook from request hook

* refactor: abstract handleWebhookTrigger

* fix: create a single file for migration

* refactor: reduce code repetition and fix test

* feat: add team webhooks to subscriberOptions

* refactor: subscriberOptions

---------

Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-30 15:35:05 +00:00
18815a9a70 feat: added toggle for dynamic booking in general settings #9060 (#9077)
* added toggle for dynamic booking in general settings

* trigger GitHub actions

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-05-30 15:34:35 +00:00
54271283af fix: Adjust height of sidebar to fit on screen when top banner is visible (#8795)
* Adjust height of sidebar to fit on screen when top banner is visible

* Remove empty space on the bottom of the sidebar

* Remove gap at bottom left of sidebar

* fix: use layout effect and resize observer

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-30 15:05:46 +00:00
Crowdin Bot dab0176938 New Crowdin translations by Github Action 2023-05-30 15:33:40 +00:00
ab6a7b5377 fix: Skeleton Loader (#8925)
* temp fix

* removed isLoading declaration

* final cleanup

---------

Co-authored-by: firefox292 <saurabh.n@nestaway.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-30 15:00:32 +00:00
1fdd28b974 fix(readme): Update version requirements (#9158)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-05-30 15:59:26 +01:00
317f59ba63 refactor: Show 404 page for new booker when event is not found. (#8946)
* CAL-1653: Show 404 page for new booker when event is not found.

* Fixed slack icon color on 404 page

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-30 11:49:52 -03:00
Crowdin Bot 3426c17f16 New Crowdin translations by Github Action 2023-05-30 14:34:07 +00:00
Crowdin Bot 5bc6cbe7f5 New Crowdin translations by Github Action 2023-05-30 14:33:05 +00:00
1eb873bd35 fix: update button fix (#9106)
* update button fix

* Update appearance.tsx

* fix linter

---------

Co-authored-by: Vinoth Kumar V <vinoth_kumar_v@Vinoths-MacBook-Pro.local>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-05-30 16:32:15 +02:00
Peer RichelsenandHariom Balhara 5bca02bac2 fix: full name of app authors and added correct urls (#9099)
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-05-30 14:25:56 +00:00
a062b5a355 chore: translation for unauthorized workflow error (#8573)
* fix: translation for unauthorized workflow error

* change to dynamic string

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-30 14:24:17 +00:00
Hariom Balhara fba2a2e2ca test: Two Factor Auth (#9142)
* Fix 2 Factor Auth

* Add 2fa tests
2023-05-30 14:23:49 +00:00
VasuDevraniandPeer Richelsen 6daa69cff9 fix: loader animation in profile update button (#9162)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-30 14:18:49 +00:00
VasuDevraniandPeer Richelsen 60a3bc5832 feat: sidebar nav item tooltips (#9160)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-30 14:18:21 +00:00
24ee3401af Avoid exec the getAvailability function when there are`t calendar selected (#9192)
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-05-30 16:17:11 +02:00
Keith Williams cae1ca8dfb Replace user email with ID in logs (#9115) 2023-05-30 16:15:09 +02:00
VasuDevrani 35144e6f47 fixed: x button overlap (#9198) 2023-05-30 14:13:17 +00:00
Crowdin Bot e37e07ab3b New Crowdin translations by Github Action 2023-05-30 13:53:11 +00:00
Alex van Andel 9b9defc0f1 ci: Fix fetch() error, improvements to booking-seats test (#9203) 2023-05-30 13:52:07 +00:00
zomars feb31fae6e Update action.yml 2023-05-29 20:40:03 -07:00
04ff5f78a9 fix: upgrade btn bug (#9104)
* fix: upgrade btn bug

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: use border-subtle

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-05-29 20:31:55 -07:00
Hariom BalharaandPeer Richelsen 8922981012 fix: location for @calcom/embed-react types (#9090)
* Use correct location for types

* Release packages

* Update versions

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 20:30:52 -07:00
d5746ed277 Make trackingId begin with GTM- always (#8937)
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2023-05-29 20:30:02 -07:00
Udit TakkarandPeer Richelsen dd94653a48 fix: confirm button not displayed (#9181)
* fix: confirm button not displayed

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: use paymentAppData

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 20:29:28 -07:00
d3ed637387 remove cold starts log (#9137)
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-05-29 20:29:07 -07:00
Crowdin Bot 6faa9c0b58 New Crowdin translations by Github Action 2023-05-30 03:13:26 +00:00
zomars 4c854e00ca Fix tests flakyness 2023-05-29 20:12:17 -07:00
zomars 67bb4cf5ca Skip flaky tests for now 2023-05-29 20:12:07 -07:00
zomars 0ed5ce229b Prevent flooding logs when no logo is available 2023-05-29 19:44:20 -07:00
Crowdin Bot 1065108a42 New Crowdin translations by Github Action 2023-05-30 02:06:22 +00:00
zomars 8e7080fc96 Fix logout test URL discrepancy 2023-05-29 19:05:34 -07:00
Crowdin Bot 46d46f9733 New Crowdin translations by Github Action 2023-05-30 01:40:02 +00:00
zomars 79e914b0fb Prevents page.pause reaching main 2023-05-29 18:28:40 -07:00
Crowdin Bot 0075414c8b New Crowdin translations by Github Action 2023-05-29 20:26:22 +00:00
zomars 285c122bdc Uses buildjet cache action 2023-05-29 13:22:24 -07:00
zomars be304738e7 Re-enables buildjet on PR blocking tasks 2023-05-29 12:54:02 -07:00
Joe Au-YeungandPeer Richelsen 9f881e9911 ci: Move linting to build jet (#9188)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 20:43:32 +01:00
Crowdin Bot 21cb2e5609 New Crowdin translations by Github Action 2023-05-29 19:16:45 +00:00
Crowdin Bot bfe0fb91f3 New Crowdin translations by Github Action 2023-05-29 19:14:49 +00:00
Adithya KrishnaandPeer Richelsen 37e6f18378 feat: Auto check PR titles if they follow conventional commits spec (#9109)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 20:12:31 +01:00
jemiluv8andHariom Balhara 15e50fcd34 fix: Route Builder rules should be case insensitive (#9040)
* override jsonLogic operators on string operands to allow for case insensitive comparisons.

Affected Operators: "==", "===", "!=", "!==", "in"

* disable no-explicit-any on jsonLogicOverrides file since most of the code there will be from jsonLogic and may not meet our coding style.

Majority of overrides require us to copy over functions and their signatures from jsonLogic and then modify their implementation.

The signature of functions implementing most operators take the operands typed as "any", which is intended, but doesn't adhere to our coding style. Hence the need to override the eslint rule

* run linter to fix issues

* Fix bug in in operator when second arg is an array

* remove redundant indexOf check on overriden jsonLogic "in" operator.

Note: this deviates from the original implementation in the jsonLogic library because our current useage ensures that the second operand is always a string or string[] and will therefore always have .index function. Whenever our invariants change in the future, make sure to modify this implementation to prevent any unexpected

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-05-29 20:11:55 +01:00
5534153d43 Add the or operator to the emails package.json as well (#9013)
Co-authored-by: TachyonicBytes <support@tachyonicbytes.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 20:11:45 +01:00
Crowdin Bot f0a9897daf New Crowdin translations by Github Action 2023-05-29 19:11:19 +00:00
Crowdin Bot a334415ff9 New Crowdin translations by Github Action 2023-05-29 19:10:28 +00:00
Crowdin Bot 75347b7a79 New Crowdin translations by Github Action 2023-05-29 19:09:34 +00:00
Crowdin Bot b8a756f98d New Crowdin translations by Github Action 2023-05-29 19:08:22 +00:00
Crowdin Bot 3bf23850a3 New Crowdin translations by Github Action 2023-05-29 19:07:27 +00:00
Crowdin Bot d13eb45565 New Crowdin translations by Github Action 2023-05-29 19:06:26 +00:00
Crowdin Bot 414c616f03 New Crowdin translations by Github Action 2023-05-29 19:05:35 +00:00
zomars bca4df677c Debugging API linting staleness 2023-05-29 12:03:32 -07:00
Crowdin Bot 876584e132 New Crowdin translations by Github Action 2023-05-29 18:59:25 +00:00
Crowdin Bot d242145c0a New Crowdin translations by Github Action 2023-05-29 18:58:30 +00:00
5640e2eb25 fix: Change Detroit to New York as a default for EST time zone (#8218)
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-05-29 19:57:34 +01:00
Peer Richelsen db7494b714 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-29 17:28:09 +01:00
mohammed hussamandPeer Richelsen ada8e19715 feat: filter bookings by event type (#9011)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 17:01:17 +01:00
GitStart-Cal.comandgitstart-calcom df7870bfce fix: dark mode fixes (#9141)
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
2023-05-29 16:53:33 +01:00
Crowdin Bot 07749a9623 New Crowdin translations by Github Action 2023-05-29 15:53:25 +00:00
Udit TakkarandPeer Richelsen 8a181f3204 refactor: radio area group (#9113)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-29 16:52:27 +01:00
zomars fcb0fce799 Migrates missing jest test to vitest 2023-05-26 14:15:01 -07:00
Crowdin Bot fcb06f82d9 New Crowdin translations by Github Action 2023-05-26 20:59:30 +00:00
zomars 75ba35c732 Possible fix to stuck CI 2023-05-26 13:58:33 -07:00
Alex van Andel 1b68cc139f v2.9.4
release.yml / release (push) Canceled after 0s
2023-05-26 12:48:01 +02:00
Crowdin Bot 084f56d052 New Crowdin translations by Github Action 2023-05-26 10:39:48 +00:00
Crowdin Bot 85caa247f8 New Crowdin translations by Github Action 2023-05-26 10:38:53 +00:00
Crowdin Bot 77904e0c55 New Crowdin translations by Github Action 2023-05-26 10:38:07 +00:00
Hariom Balhara 6f338b6fc7 fix: Broken 2 Factor Authentication (#9139)
* Fix 2 Factor Auth

* Update apps/web/pages/auth/login.tsx
2023-05-26 10:02:02 +00:00
e760122db6 change /ee to /commercial (#8948)
Co-authored-by: ygpta <25252636+yatendraguptaofficial@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-25 17:50:30 +00:00
zomars 8084a225e1 Removes jest from API 2023-05-25 15:22:06 -07:00
Omar López 98a6f8fc0e v2.9.3
release.yml / release (push) Canceled after 0s
2023-05-25 15:12:59 -07:00
zomars 5e13cc06a6 Prevents flooding the logs when querying custom logos 2023-05-25 14:55:44 -07:00
zomars 448792aafe Update yarn.lock 2023-05-25 11:53:58 -07:00
zomars 8795f41b78 Ignores API unit tests for now 2023-05-25 11:53:47 -07:00
Peer Richelsen a93e1b2881 Update README.md 2023-05-25 19:33:10 +01:00
zomars 47488f5fff Moved API files to correct dir 2023-05-25 11:29:10 -07:00
zomars ea32a698a3 Merge branch 'main' into open-source-public-api 2023-05-25 11:25:53 -07:00
Crowdin Bot d939cf20ec New Crowdin translations by Github Action 2023-05-25 16:54:06 +00:00
Crowdin Bot 417050596a New Crowdin translations by Github Action 2023-05-25 16:36:54 +00:00
Crowdin Bot 08604a9008 New Crowdin translations by Github Action 2023-05-25 16:27:51 +00:00
Crowdin Bot f3fd74dd6b New Crowdin translations by Github Action 2023-05-25 16:22:26 +00:00
Crowdin Bot e2a811a967 New Crowdin translations by Github Action 2023-05-25 16:18:23 +00:00
Crowdin Bot 9042bba312 New Crowdin translations by Github Action 2023-05-25 16:16:02 +00:00
Crowdin Bot 0f0943066e New Crowdin translations by Github Action 2023-05-25 16:15:05 +00:00
Nafees Nazik abc9dfdaf4 fix: translate (#9108) 2023-05-25 15:50:56 +00:00
Crowdin Bot bbf93a7435 New Crowdin translations by Github Action 2023-05-25 15:49:09 +00:00
Peer Richelsen cff134efc6 chore: delete code owners (#9112)
its causing more harm than good. We ideally wanna tag people based on a per-PR basis not pure file-basis

we can bring it back later
2023-05-25 12:48:11 -03:00
Crowdin Bot 4f9c66f41c New Crowdin translations by Github Action 2023-05-25 15:26:21 +00:00
Crowdin Bot 2bf9a3bb02 New Crowdin translations by Github Action 2023-05-25 15:25:30 +00:00
Praveen Kumar DandPraveen Kumar 4631805924 fix: render action button in the card only when actionButton.child is present (#9064)
Co-authored-by: Praveen Kumar <praveenkumar@Praveens-MacBook-Pro.local>
2023-05-25 14:58:44 +00:00
Peer Richelsen d6c7362162 removing commercial language from readme 2023-05-25 12:22:18 +01:00
Peer Richelsen b9116f69ae removing commercial license in favour of AGPLv3 2023-05-25 12:18:37 +01:00
Crowdin Bot f51823c24b New Crowdin translations by Github Action 2023-05-25 09:29:55 +00:00
ea3017cbf0 fix: checkbox accessibility issues (#9095)
* fix: checkbox accessibility

* chore: pass id only if rest.id is not present

---------

Co-authored-by: Praveen Kumar <praveenkumar@Praveens-MacBook-Pro.local>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2023-05-25 09:05:10 +00:00
734382b5b3 refactor: Moving from jest to vitest (#9035)
* Moving to vitest

* Rearranging test

* Fixing prettier linting

* Reverting launch.json

* Adjustments

* Merged with main and regenerated lockfile

* Fixing tests for API

* Yarn updated, docs is gone

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-24 23:35:44 +00:00
ae471ce86a fix: user full name not wrapping on navbar (#8978)
* fix: user full name not wrapping on navbar

* fix: change height of tab title container in settings page

* feat: truncate user full name instead of wrapping

* feat: truncate every section title on settings sidebar

---------

Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-24 23:13:18 +00:00
zomars dc5d5f8119 Update CODEOWNERS 2023-05-24 16:29:04 -07:00
zomars f7e963fba1 Update CODEOWNERS 2023-05-24 16:09:47 -07:00
Peer RichelsenandSyed Ali Shahbaz a59450a220 chore: Delete apps/docs directory (#9061)
* fixed timezone dropdown

* Delete apps/docs directory

Docs have moved to cal.com/docs

* nit

---------

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
2023-05-24 19:51:24 +00:00
Carina WollendorferandCarinaWolli cc2c04e52b fix is premium check (#9101)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-05-24 18:24:12 +00:00
NaaajiiandPeer Richelsen 905d24e390 fix: translation for add an override (#8927)
* fix(translation): translation for add an override

fixes #8914

* fixup: remove extra { from file

* chore: remove other translations

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-24 17:26:51 +00:00
Crowdin Bot 1134e771a8 New Crowdin translations by Github Action 2023-05-24 13:48:54 +00:00
Peer Richelsen 8715de738d Delete availability.mdx 2023-05-24 14:47:56 +01:00
Peer Richelsen 9cb01ef8ae Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-24 14:47:23 +01:00
Crowdin Bot 32a0da094a New Crowdin translations by Github Action 2023-05-24 09:53:40 +00:00
3c7de697cc Changed 1 Seats available to 1 Seat available for all languages (#9068)
* Changed 1 Seat Available

* Update on changing 1 seat available

* fix: lint errors and remove yarn.lock

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* Update on changing 1 seat available

* Updated count of keys to perfectly match the number of available seats

* Updated count of keys to perfectly match the number of available seats

* Update AvailableTimes.tsx

* Update apps/web/components/booking/AvailableTimes.tsx

* Update packages/features/bookings/components/AvailableTimes.tsx

* Formatting fixes

* Update AvailableTimes.tsx

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-24 09:29:49 +00:00
Crowdin Bot 49fad1dfc2 New Crowdin translations by Github Action 2023-05-24 09:00:46 +00:00
8fbaa4144c fixed spelling error in availability.mdx (#9002)
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-24 08:34:04 +00:00
d63e7372cb [Feat] Bulk Invite of Users + Google Workspace (#8969)
* Base UI work

* Bulk invite users

* WIP workspace oauth implementation

* Seperate components - add existing gcal check

* Move callback session to getServerSession

* Implementation of state redirect back to teams on login

* Add callback to populate text field

* Change error message

* Redirect from callback and open modal

* Fix bulk translations

* Fix translations for google button

* Delete Query

* Feature flag this

* Update packages/trpc/server/routers/viewer/teams/inviteMember.handler.ts

* Check if Gcal in installed globally

* Add new router

* Add missing [trpc] route

* Feedback

* Update packages/trpc/server/routers/viewer/googleWorkspace/googleWorkspace.handler.ts

* Typefixes

* More typefixes

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2023-05-24 01:01:31 +00:00
Crowdin Bot 3671f9dfed New Crowdin translations by Github Action 2023-05-23 23:25:30 +00:00
dae8220404 Delete .infisical.json (#9050)
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-23 23:05:23 +00:00
zomars c610fad11e Open source our public API 2023-05-23 13:29:10 -07:00
zomars fa131e0340 Updates git init scripts 2023-05-23 13:18:27 -07:00
zomars 064c0306b5 Move all files into apps/api directory 2023-05-23 13:08:56 -07:00
Udit TakkarandJoe Au-Yeung 79a4778c02 fix: add uid in evt (#9066)
* fix: add uid in evt

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: type error

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* chore: fix type error

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* fix: remove false from description

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
2023-05-23 18:19:52 +00:00
Crowdin Bot 044570123f New Crowdin translations by Github Action 2023-05-23 18:27:14 +00:00
Jeroen Reumkensandalannnc 8c7166242b CAL-1630: Added reserving of timeslot in new booker (#8923)
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-23 18:01:20 +00:00
Peer RichelsenandBailey Pumfleet ddee3e8bf6 Update Credits.tsx (#9062)
the license check never seemed to work -- removing

Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
2023-05-23 10:42:01 +00:00
Parvat Raj Singh c96cbd7a9d ✨feat: Implement Zod Validation for Email and Password in auth/login … (#9020)
* ✨feat: Implement Zod Validation for Email and Password in auth/login Page

* fix: use i18n for error message

* Update: added novalidate to form
2023-05-23 10:09:32 +00:00
8d210929b1 fixes timezone of even date variable (#9059)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-23 09:58:55 +00:00
jemiluv8 49757010ba add country-flag-icons to our public folder to be used instead of the external domain when loading country flags for react-phone-number-input (#8959) 2023-05-23 08:56:24 +00:00
12cea947ec remove isPro check (#8967)
* remove isPro check

* remove isPro check

* checkout yarn.lock from main

* checkout yarn.lock from main

* Update _getAdd.ts

* Update common.json

* Revert the revert that got merged in main already

---------

Co-authored-by: rkreddy99 <rreddy@e2clouds.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-05-23 08:44:57 +00:00
6aae976a5f Add core team to UI ownership (#9058)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-23 09:51:33 +01:00
Doug Andradeandalannnc 3ae193e362 fixed typos on faq.mdx (#9003)
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-23 09:44:41 +01:00
Hariom Balharaandalannnc ec43f3f2c0 Forward query params from Team Profile page (#9057)
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-23 08:18:51 +00:00
Hariom Balhara e20cb4a999 Fix: Embed - branding CSS variables not configurable. (#9026)
* Fix bug in overriding css vars

* Fix CSS specificity issues
2023-05-23 08:16:56 +00:00
Aashish Upadhyayandalannnc d31648e37a fix Former time in wrong time zone (Rescheduling) (#9039)
* fix Former time in wrong time zone (Rescheduling)

* eslint fixed

* yarn.lock push

* little bit of code formatting

* [eslint: fix] missing semi-colon

* linting errors fixed

* Update packages/lib/parse-dates.ts

* returning yarn lock to main

* Refactor constant and functions

* Consider time format in new function

* Fix 24 time format with am/pm

---------

Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-23 07:50:47 +00:00
Shubham kumar 5e1eb7bd72 fixes:keyboard-navigation-8887' (#9006) 2023-05-23 07:39:56 +00:00
adc2f525d2 imageSrc field is commented for solving this issue and can be removed (#9045)
* imageSrc field is commented for solving this issue and can be removed

* Update core.ts - remove the imageSrc field

* Update packages/app-store-cli/src/core.ts

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-05-23 06:51:17 +00:00
Omar LópezandJoe Au-Yeung 942c018bd9 Fallbacks custom logo if no team was found (#9051)
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
2023-05-23 06:39:24 +00:00
Crowdin Bot 51cc956a8a New Crowdin translations by Github Action 2023-05-23 06:55:52 +00:00
Carina WollendorferandCarinaWolli a6b96c9270 Follow-up team webhooks (#9052)
* fix subsriber url already defined error when editing webhook

* don't show form submitted for team and event type webhooks

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-05-23 06:26:09 +00:00
Crowdin Bot d469f1bc39 New Crowdin translations by Github Action 2023-05-23 01:53:04 +00:00
a371cd6083 [CAL-1410] Tokens update - Lightmode issues (#8598)
Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-23 01:23:23 +00:00
84efda07e9 Team webhooks (#8917)
* allow event type specific webhooks for all event types

* first version of team webhooks

* add empty view

* design fixes when no teams + invalidate query on delete/update

* linke to new webhooks page with teamId in query

* make one button with dropdown instead of a button for every team

* add subtitle to dropdown

* add avatar fallback

* authorization when editing webhook

* fix event type webhooks

* fix authorization for delete handler

* code clean up

* fix disabled switch

* add migration

* fix subscriberUrlReservered function and fix authorization

* fix type error

* fix type error

* fix switch not updating

* make sure webhooks are triggered for the correct even types

* code clean up

* only show teams were user has write access

* make webhooks read-only for members

* fix comment

* fix type error

* fix webhook tests for team event types

* implement feedback

* code clean up from feedback

* code clean up (feedback)

* throw error if param missing in subscriberUrlReservered

* handle null/undefined values in getWebhooks itself

* better variable naming

* better check if webhook is readonly

* create assertPartOfTeamWithRequiredAccessLevel to remove duplicate code

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-23 01:15:29 +00:00
Alex van Andel b83ee2d57d v2.9.2
release.yml / release (push) Canceled after 0s
2023-05-23 02:32:41 +02:00
Shivam KalraandPeer Richelsen 5f39bbe730 feat: mirotalk app-store setup (#9010)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-23 00:00:47 +00:00
Peer Richelsen cf3d8cb4bb fixed password input widht (#9049) 2023-05-22 23:30:54 +00:00
fbe0018d01 fix: cancelled booking doesn't show the booker (#8203)
* fix: remove attendee deletion

* chore: add test id

* test: add e2e

* Fix data-testid placeholder

* Fix prettier error

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-22 23:15:06 +00:00
6586ed4d87 change bg of date-input field (#9043)
Co-authored-by: rkreddy99 <rreddy@e2clouds.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-22 23:03:13 +00:00
Nafees Nazik 81e57afcf4 fix: user undefined (#9022) 2023-05-22 23:02:54 +00:00
Peer Richelsen 4cf33cf12a Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-22 23:45:38 +01:00
Alex van Andel 5cc530593b Update lockfile
release.yml / release (push) Canceled after 0s
2023-05-23 00:26:22 +02:00
Nafees Nazik 4111f78431 feat: make branding hideable in the new booker (#9033)
* feat: make branding hideable

* fix: typo
2023-05-22 21:54:43 +00:00
Udit Takkar def80ea4cf fix: reject icon color (#9031)
Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-05-22 21:53:37 +00:00
2fc4676f6d fix: [CAL-1726] UI: seats input focus too wide (#8999)
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-22 18:02:49 +00:00
Peer Richelsen 318bafaab8 Update LICENSE 2023-05-22 18:56:17 +01:00
Peer Richelsen fc10c29037 Update LICENSE 2023-05-22 18:54:09 +01:00
Riyan MohammadandUdit Takkar ccb7b1f9ac Optimize conditional rendering (#9009)
* Optimize conditional rendering

Declared a variable called isAdmin. The check session.data?.user.role === "ADMIN" is repeated multiple times. You can store this value in a variable to avoid redundant checks.

* Update AppsLayout.tsx

Removed extra line space to match prettier format

* fix: lint error

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-05-22 13:51:22 +00:00
Peer Richelsen c6c6544f50 Update package.json 2023-05-22 14:21:25 +01:00
Hariom Balhara 8a6b93a747 Fix: Embed - Auto theme configured using embed config doesn't work when there is non-system theme configured in appearance. (#9030)
* Differentiate b/w auto theme and unspecified theme

* Fix TS
2023-05-22 11:17:56 +00:00
alannnc ff6c6ccec0 Replacing bookingAttendees for bookingUid (#8997) 2023-05-22 09:30:24 +00:00
c8db177f7d fix: team member search error (#8982)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
2023-05-22 09:29:28 +00:00
Nafees Nazikandalannnc 8871e1eb21 fix: wrong locale in attendee email ics (#8945)
* fix: pass attendee translator function

* fix: type

* fix: t

* fix: t

---------

Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-22 06:14:44 +00:00
Shivam KalraandPeer Richelsen 92b2d57871 feat: 8x8 app-store setup (#9015)
* feat: 8x8 app-store setup

* fix: regex remove optional protocol, -imageSrc

* Update packages/app-store/eightxeight/config.json

* Update packages/app-store/eightxeight/config.json

---------

Co-authored-by: Peer Richelsen <peer@cal.com>
2023-05-21 18:21:30 +00:00
Alex van Andel 77623c72c5 Bump lockfile 2023-05-20 12:52:55 +02:00
3239976e18 Fix: Profile update refresh issues (#8570)
* profile update refresh fixes

* updated avatar based on logged in user

* lint & types check fixes

* fixed settings layout to fetch udpated session

* pushing the 8448 changes to separate PR

* removing hook not required

* Removed extra code

---------

Co-authored-by: Keyur Patel <keyur.patel@difx.io>
Co-authored-by: Alan <alannnc@gmail.com>
2023-05-20 00:37:58 +00:00
611939ffe8 remove todo to issue action (#8903)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-19 22:53:11 +00:00
1b8ecbe449 [CAL-1008] Fix 'All Bookings' filter not getting selected after coming from 'Your Bookings' (#8902)
* [CAL-1008] Fix 'All Bookings' filter not getting selected after coming from 'Your Bookings'

* Remove optional param from removeAllQueryParams function

* Remove setQuery from the extraction

---------

Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-19 22:50:57 +00:00
cd4882429d fix: impersonation switch active state (#8924)
* fix: switch

* fix: checked

---------

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-19 21:23:12 +00:00
zomars 4fd2d80637 Linting 2023-05-19 14:07:25 -07:00
zomars 8b4ce91fef Add missing production condition for deploy script 2023-05-19 13:37:22 -07:00
a343d934fe Replacement PR for closed PR #8960 (#8980)
* fix focus ring on number of seats

* Adding yarn.lock back

* checkout yarn.lock from main

---------

Co-authored-by: Sean Brydon <sean@cal.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-19 20:30:30 +00:00
Hariom Balharaandalannnc 933cc739bd Add config support in floatingButton api (#8986)
Co-authored-by: alannnc <alannnc@gmail.com>
2023-05-19 20:10:19 +00:00
Sanu Dutta c7c75ff4d3 enable search in select and adding border bottom color (#8988)
* searchable select

* divider color subtle
2023-05-19 19:43:01 +00:00
Alex van Andel 39a7a2240f Remove modify-response middleware (it's huge and redundant) (#266)
Remove custom types and now redundant express middlware.
2023-05-19 20:00:04 +02:00
Alex van Andel b7e65e31d6 Fix API types, detach from main repo 2023-05-19 19:38:19 +02:00
Kamalika 41f1920a7a Borders Fixed with border-subtle (#8990) 2023-05-19 16:43:41 +00:00
Carina WollendorferandCarinaWolli e4836ea8f3 make sure to also trigger when cancelled is null (#8992)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-05-19 14:41:44 +00:00
Hariom Balhara bfa30aa504 Implement UpgradeTip in App install flow (#8968) 2023-05-19 09:52:17 +00:00
Carina WollendorferandCarinaWolli b36043b637 Fixes SMS workflow actions for premium users (#8983)
* fix sms actions for users with premium user names

* code clean up

---------

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-05-19 08:10:11 +00:00
ASHOK-SINGH 75026289fd Fix- Calendar override with the wrong dates and time (#8936) 2023-05-19 07:22:26 +00:00
Parth Sharma 80649c9f1a fix height issue (#8973) 2023-05-19 06:46:06 +00:00
Isaiah Hamilton 7dd75afb63 fix button width (#8979) 2023-05-19 06:25:44 +00:00
Crowdin Bot f66e4aeeed New Crowdin translations by Github Action 2023-05-19 00:45:20 +00:00
Rama Krishna Reddyandrkreddy99 8225e61710 fix redirect after adding ping.gg (#8972)
Co-authored-by: rkreddy99 <rreddy@e2clouds.com>
2023-05-19 00:22:07 +00:00
Jeroen Reumkens 175fc4fcf3 CAL-1673: Use dark/light colors from user profile settings in booker (#8905)
* CAL-1673: Use dark/light colors from user profile settings in booker

* Use system theme for dynamic booking, instead of theme set by first user.
2023-05-18 06:16:51 +00:00
shaharyarshamshiandJoe Au-Yeung f20a5df322 Guide to setup enviroment variable added in contributing mardown file (#8911)
* Guide to setup enviroment variable added in contributing mardown file

* linting error

* Update CONTRIBUTING.md

* linting error

---------

Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
2023-05-17 15:11:28 -07:00
62544931b2 updated language of raycast instructions (#8908)
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-17 19:10:25 +01:00
Alex van Andel ff69481cb9 Keep next v13.2 for now 2023-05-17 19:40:27 +02:00
Alex van Andel f6ad1d6ed5 Bump lockfile 2023-05-17 16:25:03 +02:00
d22b1072b5 change datepicker styles to fix dark mode issue (#8886)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-17 13:12:52 +00:00
4b356dd937 chore: extended slugify function (#8740)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2023-05-17 13:05:14 +00:00
1f51199a7b issue#8601: fix (#8713)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2023-05-17 12:57:12 +00:00
Crowdin Bot b80a631998 New Crowdin translations by Github Action 2023-05-17 13:15:49 +00:00
Crowdin Bot bef4422080 New Crowdin translations by Github Action 2023-05-17 13:14:27 +00:00
cfd1a72c64 [CAL-1545] replace heroicons with lucide.dev (#8599)
* fix linting

* [CAL-1545] replace heroicons with lucide.dev

* [CAL-1545] replace heroicons with lucide.dev

* [CAL-1545] replace heroicons with lucide.dev

---------

Co-authored-by: gitstart-calcom <gitstart@users.noreply.github.com>
Co-authored-by: Efraín Rochín <roae.85@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2023-05-17 12:47:44 +00:00
Peer Richelsen 64418e0a85 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-17 12:58:41 +01:00
23b3a6661c Add feature to offset start times for event types (#8506)
* Add offsetStart column to EventType

* Update buildSlots to support offset start times

* Add "Offset Start Time" to edit event types form

* Fix offset events not appearing on availability selector

* Guard against negative offsetStart values

* Lock offsetStart field for managed event types

* EventLimits UI tweaks for "Offset start times"

* EventLimits UI: Fix offsetStart preview not always updating

* Remove unnecessary ctx from getSchedule.test.ts

---------

Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-17 11:56:55 +00:00
Hariom Balhara b8b6c48d7d Improvements: Prefill Routing Forms and connect prefilling with Booking Form (#8780)
* Support prefilling routing form and prefilling Booking form through routing form

* Use Option Value as is instead of lowercasing

* Fix prefill validation issue

* Add prefill tests

* Fix Routing Form tests

* Small fix
2023-05-17 08:47:48 +00:00
Crowdin Bot 81655f9988 New Crowdin translations by Github Action 2023-05-17 08:47:19 +00:00
Nafees Nazik ff74822c48 Fix: locale and time format in attendee email (#8941)
* feat: add locale prop

* feat: add locale prop

* feat: add locale prop

* fix: time format
2023-05-17 08:17:09 +00:00
Jeroen Reumkens 8ec178debd CAL-1591: Remember form values in new booker form when user navigates back and forth between timeslots and form (#8920) 2023-05-16 20:34:15 +00:00
Hariom BalharaandOmar López f881061d8d Fully handle booking pages with conflicting themes being opened together (#8921)
* Handle booking pages with conflicting themes being opened together

* Add comments

---------

Co-authored-by: Omar López <zomars@me.com>
2023-05-16 19:41:47 +00:00
Peer Richelsen f513fdf3c1 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-16 17:22:19 +01:00
Crowdin Bot 2525559d6b New Crowdin translations by Github Action 2023-05-16 11:27:38 +00:00
Carina WollendorferandCarinaWolli 38fb7a3f77 fix locked toggle (#8926)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2023-05-16 11:04:03 +00:00
Alex van Andel 08956e54c5 Fix yarn.lock (missing lockfile commit in #8769) 2023-05-16 00:51:24 +02:00
ea65a2a27e fix: add exp in /meeting-tokens (#8869)
* fix: add exp in /meeting-tokens

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>

* hijacking this PR to add a NIT change lol

---------

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2023-05-15 20:15:05 +00:00
Syed Ali ShahbazandAlex van Andel 98e0a97c47 SWAGGER: Adds query example and response body example to /Availability (#264)
This PR adds query examples and response body example to /Availability

---------

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2023-05-12 14:46:06 +02:00
Alex van Andel 4c02bb960b Remove sessionGetter as it's deprecated (#265)
Fixes API build, error introduced in
https://github.com/calcom/cal.com/pull/8419
2023-05-12 00:22:24 +02:00
Peer Richelsen 8290ca0106 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-10 11:13:21 +01:00
Alex van Andel b6c3dce692 Fix with upstream (#263) 2023-05-05 16:33:24 +02:00
Peer Richelsen 32fb9cb746 Merge branch 'main' of https://github.com/calcom/cal.com 2023-05-05 14:58:47 +01:00
Peer Richelsen 807f186f6b Merge branch 'main' of https://github.com/calcom/cal.com 2023-04-27 12:07:02 +01:00
Peer Richelsen 52202948a9 Merge branch 'main' of https://github.com/calcom/cal.com 2023-04-25 20:18:40 +02:00
Peer Richelsen 4e545595b7 Merge branch 'main' of https://github.com/calcom/cal.com 2023-04-24 18:06:49 +02:00
Alex van Andel 9490b65775 Fix type error by no longer initialData the user 2023-04-23 18:57:21 +02:00
Alex van Andel 02094904be Patch vulnerability that allowed self-promotion 2023-04-23 18:43:23 +02:00
Peer Richelsen 1af1802dbe fixed timezone dropdown 2023-04-22 17:55:15 +02:00
Hariom Balhara 37a2209871 Hotfix: Make bookingFields optional (#258) 2023-04-19 21:27:25 -07:00
Syed Ali Shahbaz 38987b77bb Swagger/schedules request and response examples (#257)
This PR adds request body and response body examples to swagger in
/schedules endpoint
Added for:
- [x] `/schedules/_post`
- [x] `/schedules/_get`
- [x] `/schedules/[id]/_get`
- [x] `/schedules/[id]/_post`
- [x] `/schedules/[id]/_patch`
2023-04-19 12:22:07 -07:00
Syed Ali Shahbaz d5db1e4171 Swagger/booking req resp body (#256) 2023-04-19 12:58:05 +02:00
Hariom Balhara 0d1ad23c57 API Support: Manage Booking Questions and responses (#253)
Works with https://github.com/calcom/cal.com/pull/8115
2023-04-18 19:17:29 +05:30
zomars 9654677664 Removed embeds from API as they trigger unused build scripts 2023-04-13 11:11:56 -07:00
Syed Ali Shahbaz fab5eb948c Update /booking _post.ts to have eventTypeId as required (#254)
Update` /booking` `_post.ts` to have 
- eventTypeId as a required field
- example for request body
- Updated schema that represents actual usage
2023-04-12 17:16:19 +02:00
Syed Ali Shahbaz 386ad87e64 Event type swagger update for location type (#252)
Updates Location Type documentation in swagger for event type _post and
_patch
2023-03-21 10:32:48 -07:00
zomars 8aa004c34a Syncs with monorepo 2023-03-17 16:57:23 -07:00
Nafees NazikandHariom Balhara 945ab355a5 feat: return cal link in event-types query (#244)
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2023-03-17 13:57:18 +05:30
Alex van Andel cb54ab670e Added 'hosts' to POST call, PATCH needs a db migration on web (#239)
Complete, but bit of a WIP due to _patch
2023-03-15 16:43:00 -07:00
zomars 2b9af8457c Updates yarn 2023-03-15 15:31:39 -07:00
Alex van Andel cb08bba351 Add GET /teams/{id}/event-types endpoint (#251)
Allows fetching team event types - GET /event-types only lists the user
event types - currently fetching the team event types isn't possible.
2023-03-13 12:24:10 +00:00
Syed Ali Shahbaz 870b2df538 hotfixes swagger delete path (#250)
a quick hotfix 🙏
2023-03-13 09:57:00 +00:00
zomars 464c283e0c Reverts oopsie 2023-03-10 12:01:46 -07:00
Syed Ali Shahbaz 4e24b6f7c0 Swagger/multiple fixes (#248)
This PR adds

- Swagger fixes for Teams endpoint
- Removes unintended remnant from custom input
- Swagger fixes for Payments endpoint
2023-03-10 22:34:14 +05:30
Syed Ali Shahbaz 8fc4eedf5f Adds swagger for schedules (#247)
This PR updates swagger documentation for the Schedules endpoint
2023-03-10 22:33:41 +05:30
Syed Ali Shahbaz 2da8784865 swagger docs update for selected calendars (#246)
Adds swagger doc update for selected calendars API endpoint
2023-03-10 22:33:27 +05:30
Syed Ali Shahbaz ccf93190d7 Swagger docs for webhooks (#245)
This PR updates and adds to the swagger documentation for /webhooks
endpoint
2023-03-10 22:33:09 +05:30
Syed Ali Shahbaz e54e1aa72e Updates Availability and Attendees swagger docs, hotfixes Booking API doc (#241)
- Adds swagger definition and swagger fixes to /availability and
/attendees
- Also fixes Booking API endpoint definition (startTime -> start,
endTime -> end)
2023-03-10 19:29:24 +05:30
Alex van Andel 59c25d41fd Removed next-transpile-modules 2023-03-06 12:45:04 +00:00
zomars d65d08a3a1 Type fix 2023-03-03 13:20:27 -07:00
zomars d8d875cc01 Upgrades next 2023-02-28 15:01:11 -07:00
Syed Ali Shahbaz 2a5688f2a6 Adds the ability to confirm a booking using API (#243)
Simply adds the ability to update the status of a booking (meant for
confirming a booking) using the API
Fixes: https://github.com/calcom/cal.com/issues/7121
2023-02-23 15:04:48 -07:00
Syed Ali Shahbaz d47fa578b7 Fixes _patch swagger paramters 2023-02-23 20:46:55 +05:30
Syed Ali Shahbaz a4f82fa6fa Adds swagger definition to Event Types (#242)
This PR adds swagger definition to Event Types endpoint with request
body examples for POST and PATCH requests
2023-02-23 13:54:10 +01:00
zomars 42eb7041d4 New linting rules 2023-02-16 14:01:40 -07:00
f02cfc9990 Swagger definition general fixes (#237)
This PR addresses definition errors currently residing within our
swagger doc.
 
~DISCLAIMER: There is still an error for our DELETE booking call, as
open API standard doesn't expect the DELETE call to contain a request
body, but we are requiring it in the way it currently works. Perhaps we
should move those to Query Parameters instead. Thoughts @zomars @emrysal
?~

It was taken care of by @leog and the docs are now updated as per the
endpoint

<img width="247" alt="image"
src="https://user-images.githubusercontent.com/52925846/217799706-21b7c21d-696b-4e20-a682-c8a949694b61.png">
<img width="629" alt="image"
src="https://user-images.githubusercontent.com/52925846/217799842-c903c23a-0b0d-4208-a3e9-01a682eeff97.png">

---------

Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Omar López <zomars@me.com>
2023-02-13 12:52:11 +00:00
zomars fdb45e3745 More tests 2023-02-08 19:56:41 -07:00
zomars 317e05511b Shared insntances test fix 2023-02-08 19:33:23 -07:00
zomars 0389ebfed5 Testing disconnect 2023-02-08 19:30:03 -07:00
Syed Ali Shahbaz 2248d7069f Improves Destination Calendar docs in swagger (#235)
Adds swagger definition to `destination-calendar` endpoint
2023-02-08 17:16:32 -07:00
Syed Ali Shahbaz f170f17f2c Improves custom inputs docs in swagger (#233)
Adds swagger definition to `custom-inputs` endpoint
2023-02-08 14:38:04 -07:00
zomars dc0a6eaa32 Export for typecheck 2023-02-08 10:56:00 -07:00
zomars 0b2724124a Updated checkLicense 2023-02-08 10:56:00 -07:00
Syed Ali Shahbaz 3ebab100ce Fixes invalid availability schema (#236)
Hotfix attempt to fix fix invalid availability _post schema in swagger
2023-02-08 15:52:08 +01:00
Omar López 992bdc0b54 Fixes paginated endpoints (#234)
- Passing an invalid number or 0 was causing trouble
2023-02-07 17:20:21 -07:00
Syed Ali Shahbaz 279c3da21f Improves Booking docs in swagger (#219)
Adds definition to booking swagger definition, and fixes user _post
definition example
2023-02-07 08:41:08 -07:00
Omar López 3517ef6adc Upgrades typescript to 4.9.4 (#230)
https://github.com/calcom/cal.com/pull/6747
2023-01-26 18:51:06 -07:00
zomars 0af9e11360 Revert "Upgrades typescript"
This reverts commit 944a50bd29.
2023-01-26 14:28:41 -07:00
zomars 944a50bd29 Upgrades typescript 2023-01-25 18:37:51 -07:00
zomars 9af022b663 Fix for multi-tenant users 2023-01-25 14:14:43 -07:00
zomars a4a6660421 Fix deploy script 2023-01-23 17:24:47 -07:00
Leo Giovanetti 6cec8620cb Pagination issue fixed, total added (#227)
Fixes #217.
2023-01-18 12:49:31 -07:00
Udit Takkar 7aebdb8c96 fix: use schema from zod-utils (#225)
fixes:- https://secure.helpscout.net/conversation/2117165409/2395

How to test? 
Create an event type with custom inputs 
GET Request on /event-types end point


After:- 
<img width="1440" alt="Screenshot 2023-01-07 at 4 57 39 PM"
src="https://user-images.githubusercontent.com/53316345/211147930-1154f1ad-5309-4e9c-b2e0-164169717d47.png">

Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
2023-01-07 08:56:13 -07:00
zomars 2808b798df Upgrades next 2023-01-05 18:02:06 -07:00
Hariom Balhara 9c23a8e5ab Security Fixes (#224)
Fixes - 2,3,4 security vulnerabilities reported in this message.
https://calendso.slack.com/archives/C03127U5S5Q/p1671922033089329

More Fixes
- Dont't allow a user to add a random attendee to a booking not owned by
him
- Don't allow a user to add a random cal user as an organizer of the
booking.
- Membership deletion should be as per the Privileges of
Owner,Admin,Member
2023-01-04 15:17:47 -07:00
zomars 604d937661 Linting 2022-12-20 11:58:30 -07:00
Carina WollendorferandCarinaWolli c3e0852541 Only allow team admin and owner to create team event types (#220)
Currently, anybody can create an event type for any team. With this PR
we only allow team ADMIN and OWNER to create event types for the team.

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-12-20 10:50:46 -07:00
Carina WollendorferandCarinaWolli 161ebacfef Don't allow team admins to give owner permissions (#221)
Throw an error if a user of a team with ADMIN permission tries to change
permission to OWNER (Bug#3)

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-12-20 10:45:24 -07:00
zomars 12f19ff7c0 Upgrades zod 2022-12-15 15:56:23 -07:00
Joe Au-Yeung 5d892df019 Allow seatsPerTimeSlot and seatsShowAttendees in event type calls (#216)
This PR allows `seatsPerTimeSlot` and `seatsShowAttendees` in event type
POST and PATCH calls
2022-12-15 15:36:09 -07:00
zomars c129586336 Linting 2022-12-08 16:34:09 -07:00
zomars f3c5f9bc0c Import fixes 2022-12-08 16:28:28 -07:00
zomars 8b74f463f4 Needed for console 2022-12-08 15:00:06 -07:00
zomars 41d22c8ccb Fixes for console 2022-12-05 16:09:19 -07:00
zomars ae7c3e2d6a Removes unused cache 2022-12-05 14:16:58 -07:00
zomars b3443cd22d Revert fix 2022-12-02 18:39:30 -07:00
zomars e15f6abc9b Fixes 2022-12-02 15:22:56 -07:00
Omar López d35f27014e Implements API key endpoint (#211)
This allow us to manage our API keys directly from the API itself.

User can:
- Create own API keys
- Edit own API keys (only the note field for now)
- Delete own API keys
- Get own API keys

Admin can:
- CRUD for any user
- Get all API keys
2022-11-29 15:06:23 -07:00
Omar López 26ea743af2 Update README.md 2022-11-29 09:07:53 -07:00
Omar López 48b637164c Update README.md 2022-11-27 15:36:36 -07:00
zomars 055699f612 Various import and type fixes 2022-11-25 06:58:21 -07:00
zomars 94ecb1908a Type fixes 2022-11-25 06:03:40 -07:00
zomars faa685adb6 Sync to monorepo 2022-11-25 05:47:35 -07:00
zomars 3d84ce68c9 Tests updates 2022-11-22 19:50:00 -07:00
alannncandzomars c016a4343d added more endpoints and validations for publish-pay teams (#209)
## What does the PR do?

- Team billing via API

Just like the web project, we validate that team has stripe metadata
before converting requestedSlug to slug.

Co-authored-by: zomars <zomars@me.com>
2022-11-22 13:24:25 -07:00
Syed Ali Shahbaz 8e25b9244c Fix deployment failure due to prettier (extra spaces) (#214)
Simply removes extra spaces which are causing prettier to fail
deployment, introduced in the PR for USER swagger doc update
2022-11-21 10:49:55 +05:30
Syed Ali Shahbaz bbaa8ae5e7 Adds more definition to USER swagger (#212)
Adds more definition for documentation for the USER endpoints
2022-11-18 12:20:15 -07:00
Leo Giovanetti 3654677a20 Fixing unit test (#205)
Fixing POST unit test for `apps/api/test/lib/bookings`
2022-11-18 12:19:33 -07:00
Syed Ali Shahbaz 4080e5bc5e Update availabilities _post swagger def (#210)
- Adds more specs to the swagger definition in /availabilities for doc
experimentation
2022-11-18 12:18:07 -07:00
Alex van Andel e5827b035d Fix type error with null being an invalid value (#213) 2022-11-18 17:08:49 +05:30
Alex van Andelandzomars 51bc3d93c1 user: Add email and username, remove bufferTime,startTime,endTime (#202)
Co-authored-by: zomars <zomars@me.com>
2022-11-17 11:35:06 -07:00
Alex van Andel 0f5017010f Fix lint error 2022-11-07 14:48:32 +00:00
zomars e0619d383a Sync package.json 2022-11-04 12:14:54 -07:00
Omar LópezandAlex van Andel d1bbaef5c6 Refactor membership endpoints (#204)
refs #175

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-10-21 13:54:28 -06:00
zomars d93fd26a1e Removed unused methods middleware 2022-10-21 13:30:09 -06:00
zomars 6522600c42 Add missing bodyUserId 2022-10-21 12:55:35 -06:00
zomars 7617cd43e1 Patching bodyUserId requests 2022-10-21 12:55:15 -06:00
Alex van Andel b30995456c Bring back @calcom/ui 2022-10-21 14:13:19 +01:00
Alex van Andel 9448e67ed0 Added status: true to booking model (#203) 2022-10-21 14:04:20 +01:00
Alex van Andel adfada993e Remove the Signup from /api and remove @calcom/ui dep (#201)
Also adds missing dependencies
2022-10-21 13:19:31 +01:00
Alex van Andel dee0f6a415 Remove GET /availabilities (#188)
Follows-up on earlier discussions about the relationships of
/availabilities and /schedules.

`GET /schedules/:id` returns a schedule with associated availabilities
in the `availabilities` property. It gives more context and less
consumer work to perform GET actions using this endpoint. Other
endpoints of this collection do make sense.

Proposing also to rename the /availabilities collection to
/availability; given after this it always involves one and only one
/availability record in CRUD.
2022-10-21 00:58:20 +01:00
Leo GiovanettiandAlex van Andel debc8dbafb Using abstracted booking cancellation (#191)
Implemented `DELETE /booking/:uid` as well as `DELETE
/booking/:uid/cancel` based on abstracted cancellation logic from
webapp.

PR dependant on https://github.com/calcom/cal.com/pull/5105

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-10-21 00:49:57 +01:00
Omar López f66ed50ecb Selected Calendars endpoints refactor (#193)
refs #175
2022-10-20 11:35:02 -06:00
Alex van Andel 109377b65c Returns bookings in response where user is attending (#196) 2022-10-20 18:27:24 +01:00
Alex van Andel f4d52b88a4 Changed req to query to allow passing in userId, not session (#197) 2022-10-20 18:27:01 +01:00
Alex van Andel 1f9be423ad Set start and endTime to iso8601 (#198) 2022-10-20 18:26:43 +01:00
Alex van Andel ecd20d63c9 Added attendees & user (#192) 2022-10-19 19:35:34 +01:00
Omar López 03d5f51ceb Refactor/webhooks (#186)
refs #175
2022-10-19 12:26:12 -06:00
Alex van Andel ce2df7641f Feature/additional fields (#189)
Added timeZone, attendees.(email, name, timeZone, locale), user.(email,
name, timeZone, locale) & metadata
2022-10-19 17:03:54 +01:00
zomars 07b011424f Formatting 2022-10-15 10:54:22 -06:00
zomars 00bd908916 Fixes permission errors 2022-10-14 17:41:28 -06:00
zomars 37fa76315a Allow to update booking description 2022-10-14 15:52:17 -06:00
zomars 25d3d12319 Adds custom inputs to eventTypes responses 2022-10-14 15:52:09 -06:00
zomars 11ffdccb4a Removes locale altogehter
@see https://github.com/vercel/next.js/issues/29000
2022-10-14 13:26:30 -06:00
zomars 7708ee83a1 Locale fixes 2022-10-14 13:16:46 -06:00
zomars d38015c737 Locale fixes 2022-10-14 13:02:53 -06:00
zomars ad35d3a5cd Linting 2022-10-14 12:57:50 -06:00
zomars 9c35ff2d2e Locale fixes 2022-10-14 11:42:31 -06:00
zomars ccf0a40b67 Misc fixes 2022-10-14 11:42:05 -06:00
Omar López e3fa0e546b Refactor schedule endpoints (#185) 2022-10-13 14:54:38 -06:00
zomars 31610dd178 Adds missing description field to patch 2022-10-13 13:39:04 -06:00
Omar López 6ba70a7259 Refactor/custom inputs (#184)
refs #175 

To be merged after #183
2022-10-13 12:30:48 -06:00
Omar LópezandLeo Giovanetti 8c24c5c714 Refactor/booking logic (#183)
refs #175 

Reuses the same logic for creating bookings from the web app.

Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-10-13 12:29:30 -06:00
Omar López f13694fd13 Refactors event-types endpoints (#181)
refs #175
2022-10-11 14:14:03 -06:00
zomars 4ba0395efa Permission fixes 2022-10-11 14:09:22 -06:00
Hariom Balhara 7aeb247b1a Delete unused file. If needed import from @calcom/core (#156) 2022-10-11 15:36:18 +01:00
Alex van Andel a506c7da33 Refactor + fix userIds filter (#179)
This fix means a behaviour change to GET calls. Instead of a JSON
payload, instead a filter param has been added to the URL itself. GET
payloads are very unexpected in API designs, even though supported.

* Todo write tests (with postman?)
* Turn isAdmin logic into common middleware

```bash
curl "http://localhost:3002/v1/schedules?apiKey=...&userId=2"
```

```bash
curl "http://localhost:3002/v1/schedules?apiKey=..." \
  -d '{"name":"Hello", "userId": 2}' \
  -H 'Content-Type: application/json'
```
2022-10-11 15:33:25 +01:00
Omar López da61841525 Refactors booking references endpoints (#180)
refs #175
2022-10-11 15:25:57 +01:00
zomars 88332fb2ab Refactors teams 2022-10-10 20:25:47 -06:00
zomars c03144c343 Fixed major flaw with authMiddleware
authMiddleware should not use defaultResponder directly as it will catch thrown error and we need those errors to prevent running the rest of the code.
2022-10-10 20:23:08 -06:00
zomars a35454bb68 Me cleanup 2022-10-10 18:02:36 -06:00
Omar López 18e96e2a47 Refactors availabilities endpoints (#177)
refs #175
2022-10-10 09:42:15 -06:00
Omar López cb9ce8a8c5 Merge pull request #176 from calcom/refactor/attendees
Refactors attendees' endpoints
2022-10-07 16:08:09 -06:00
zomars d4a2b8e791 Refactors attendees' endpoints 2022-10-07 13:08:25 -06:00
Omar López 85890a6acb Merge pull request #172 from calcom/fix/invalid-eventtypeid
Recurring event booking: invalid eventTypeId
2022-10-07 10:59:14 -06:00
Syed Ali Shahbaz f5d953ef1c Hotfix/schedule (#174)
* Allows empty call

An authorized API call by a non-admin user with empty body will still fetch his data now

* Adds missing return
2022-10-07 15:33:04 +05:30
Joe Au-YeungandSyed Ali Shahbaz d68ce5e72f Admin privileges for /availabilities endpoint (#169)
* List other user's availabilities

* /availabilityId methods for other users

* Add return statements

* Accept userId single value or array

* Add zod schema checks

* Filter for schedules only with an availability

* Adds safeParsing of JSON before safeParsing of zod

* Removed console log

* Adds safe JSON parsing before .safeParse

* Allow API call without necessarily passing userId

Allow `/availabilities` call by a regular user without having to pass their userId to make it work

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
2022-10-07 15:26:02 +05:30
Syed Ali Shahbaz 0abf286785 Merge pull request #168 from calcom/create-schedule-with-availability
Admin privileges for /schedules
2022-10-07 10:23:41 +02:00
Syed Ali Shahbaz 628306793d Prettier fix :/ 2022-10-07 13:47:46 +05:30
Syed Ali Shahbaz b05b6e48e7 Fixes another typo 2022-10-07 13:41:17 +05:30
Syed Ali Shahbaz 8eaad0c1c6 fixed typo 2022-10-07 13:34:02 +05:30
Syed Ali Shahbaz 9a65c547dc Adds missing return after res 2022-10-07 13:24:55 +05:30
Syed Ali Shahbaz cc01e47d58 Merge pull request #173 from calcom/fix/create-schedule-availability
Fix/create schedule availability
2022-10-07 09:46:07 +02:00
Syed Ali Shahbaz 21e081c64c Adds meaningful response for API caller 2022-10-07 13:15:35 +05:30
Syed Ali Shahbaz affba8bf66 Adds meaningful response for API caller 2022-10-07 13:13:56 +05:30
Syed Ali Shahbaz 3bdebba21e Adds meaningful response for the API caller 2022-10-07 13:12:57 +05:30
Syed Ali Shahbaz 79fabe0333 Adds safeParseJSON to the body 2022-10-07 13:03:09 +05:30
Syed Ali Shahbaz 36a0ebfbad Adds safe json parse of the body
It ensures that the body complies with the safe parsing of the JSON so that if the body sent is not a valid JSON, we convert it into an empty JSON. Would improve in handling the response of such cases as a follow up for improved UX
2022-10-07 12:46:35 +05:30
Syed Ali Shahbaz 12f54773f9 Adds safeParseJSON.ts file 2022-10-07 12:43:47 +05:30
Leo Giovanetti 70b9969fe3 Fixing en error case for invalid eventTypeId 2022-10-06 18:27:49 -03:00
Leo Giovanettiandzomars 2a05f15156 Recurring booking implementation (#167)
* Recurring booking implementation

* Tweaks to expected texts in tests

* Applied feedback

Co-authored-by: zomars <zomars@me.com>
2022-10-06 17:40:41 -03:00
Joe Au-Yeung da88beb1f5 Fix type errors 2022-10-06 15:06:07 -04:00
Joe Au-Yeung 00ccb4ffd1 Simplify get /schedules 2022-10-06 14:41:50 -04:00
Joe Au-Yeung 2a7a111855 Safe parse for userId 2022-10-06 14:38:17 -04:00
Omar López 7909d90915 Merge pull request #170 from calcom/admin-event-types
Allow for admin to edit other user's event types
2022-10-06 10:33:52 -06:00
Joe Au-Yeung 48f270d032 Remove console log 2022-10-06 10:59:46 -04:00
Joe Au-Yeung 34f5f5f83f Pass userId as single value or array 2022-10-06 10:55:14 -04:00
Joe Au-Yeung 4ac9c1e6dd Remove old comment 2022-10-06 10:02:35 -04:00
Joe Au-Yeung 372e188228 Pass userId as a single value or an array 2022-10-06 09:55:34 -04:00
Joe Au-Yeung 77b89fda05 Add return statements 2022-10-05 16:02:34 -04:00
Joe Au-Yeung ce8af8b6a5 Allow for admin to edit other user's event types 2022-10-05 15:59:34 -04:00
Joe Au-Yeung a5413b40ab Add ability to get, post, and delete for other users if admin 2022-10-05 11:04:58 -04:00
Joe Au-Yeung 95fc04a453 Add check for userId and admin to top 2022-10-05 10:05:04 -04:00
Joe Au-Yeung 1adace1c0d Create new availability on new schedule 2022-10-05 09:56:27 -04:00
Joe Au-Yeung 7e9226fabc Merge pull request #165 from calcom/hotfix/connect-user-on-new-event-type 2022-10-04 09:11:22 -04:00
Joe Au-Yeung 362d8ca769 Connect user to new event type 2022-10-03 14:26:00 -04:00
Peer Richelsen d14c8404e7 Update index.ts 2022-09-24 13:23:10 +00:00
Omar López a36b6fa923 Merge pull request #163 from calcom/fix/admin-me
fix: userId not 0 for fixing /me endpoint
2022-09-07 13:31:50 -06:00
Agusti Fernandez Pardo be200cd076 fix: userId not 0 for fixing /me endpoint 2022-09-07 18:18:43 +02:00
Agusti Fernandez Pardo fcb9ca6ace Merge pull request #162 from calcom/fix/no-prisma-defined 2022-09-06 19:40:48 +02:00
Agusti Fernandez Pardo fc4d0ab3ea fix: prisma not defined 2022-09-06 19:40:23 +02:00
Agusti Fernandez Pardo 5d09739966 Merge pull request #161 from calcom/fix/me 2022-09-06 19:20:41 +02:00
Agusti Fernandez Pardo 80bd5068d4 fix: don't use defaultHandler w promise in api yet, was from console 2022-09-06 19:20:04 +02:00
Agusti Fernandez Pardo 7707275f94 Merge branch 'main' into production 2022-09-06 19:06:44 +02:00
Agusti Fernandez Pardo d210623fbd Merge pull request #160 from calcom/fix/build-issues 2022-09-06 19:06:29 +02:00
Agusti Fernandez Pardo 3caee6c697 fix: removes daily-event-reference endpoints and types 2022-09-06 19:04:16 +02:00
Agusti Fernandez Pardo 22359dda1b Merge branch 'main' into production 2022-09-06 18:13:06 +02:00
Omar López ddc084044a Merge pull request #158 from calcom/feat/me-endpoint
feat: adds me endpoint that returns session info
2022-09-05 14:07:51 -06:00
Agusti Fernandez Pardo 731288bcb6 fix: use middleware, refactor into _get 2022-09-05 21:31:12 +02:00
Agusti Fernandez Pardo 4d74a6c896 feat: dont use ensureSession, but userId from req 2022-09-05 21:16:45 +02:00
Agusti Fernandez Pardo bc8623edb8 feat: adds me endpoint that returns session info 2022-09-05 21:01:55 +02:00
zomars 181921f9c7 Fixes mismatches 2022-08-17 11:40:12 -06:00
Omar López 0a331ff093 Merge pull request #154 from calcom/upgrade/deps
Fixes mismatches
2022-08-17 11:38:45 -06:00
zomars 1de91a5124 Fixes mismatches 2022-08-15 18:38:25 -06:00
zomars 188ad55686 Update README 2022-08-12 12:58:32 -06:00
Omar López c1b897c39a Merge pull request #153 from calcom/feat/license
Feat/license
2022-08-11 13:40:27 -06:00
zomars db937ce00a Matches local lint with CI lint 2022-08-11 12:47:36 -06:00
zomars 7560fdbfc5 Squashed commit of the following:
commit fc87557902
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 15:08:36 2022 -0600

    Fixes callbackUrl
2022-08-09 17:36:18 -06:00
Agusti Fernandez Pardo 8dfc62386d fix: add CALCOM_LICENSE_KEY in env vars section in readme 2022-08-09 19:39:43 +02:00
Agusti Fernandez Pardo 87d8417dd9 feat: add license and readme about copyright 2022-08-09 19:17:42 +02:00
zomars fc87557902 Fixes callbackUrl 2022-08-05 15:08:36 -06:00
Agusti Fernandez Pardo 244f64d8e7 fix: remove unneeded dep from api package.json app-store-cli 2022-08-04 19:57:20 +02:00
Agusti Fernandez Pardo 12fe6af995 feat: adds license check 2022-08-04 19:54:25 +02:00
zomars 915610763e Build fixes 2022-08-03 11:49:45 -06:00
Omar López 0f13e80785 Merge pull request #150 from calcom/monorepo/ee
Fixes import
2022-07-28 13:58:36 -06:00
zomars 60c2f73607 Migrates EE code 2022-07-28 13:51:20 -06:00
zomars 159792831a New import 2022-07-22 20:32:10 -06:00
zomars aba7b1ec1c Linting 2022-07-21 22:21:24 -06:00
Agusti Fernandez Pardo a8e8acd053 Merge pull request #149 from calcom/fix/users-pagination
fix: users pagination remove min/max as its a string not a number
2022-07-14 19:57:22 +02:00
Agusti Fernandez Pardo aa12f893e8 fix: users pagination remove min/max as its a string not a number, also add new env var to example 2022-07-14 19:44:24 +02:00
zomars 80500ebaf0 Fixes lint:fix script 2022-07-13 15:13:24 -06:00
zomars 7a53c5bb85 Adds missing lint scripts 2022-07-12 15:24:19 -06:00
Agusti Fernandez Pardo 60e9c26dfe Merge pull request #148 from calcom/production
rebase dayjs fix in Production to main
2022-07-12 20:37:24 +02:00
Agusti Fernandez Pardo c352720877 Merge branch 'main' into production 2022-07-12 20:35:49 +02:00
Agusti Fernandez Pardo b2f3242a8e Merge branch 'main' into production 2022-07-12 20:35:10 +02:00
Agusti Fernandez Pardo 3798c27613 Merge branch 'feat/availability-teams' into production 2022-07-12 20:28:02 +02:00
Agusti Fernandez Pardo 2bb6c7de45 Merge pull request #135 from calcom/feat/availability-teams
Feat/availability teams + pagination for /users
2022-07-12 20:16:57 +02:00
Agusti Fernandez Pardo 67fe26ec69 fix: lint issue import order 2022-07-12 20:09:54 +02:00
Agusti Fernandez Pardo f87eb7d18e fix: lint add spaces 2022-07-12 20:01:51 +02:00
Agusti Fernandez Pardo f985bbd1ff fix: move patch to no then/catch 2022-07-12 20:01:25 +02:00
Agusti Fernandez Pardo 3f6e7904cb fix: no http_method middleware needed as already handled by defaultHandler 2022-07-08 21:49:14 +02:00
Agusti Fernandez Pardo 6971ba249f fix: add optional to pagination query's 2022-07-08 21:47:31 +02:00
Agusti Fernandez Pardo c8829fc08b fix: rename pageNumber to page 2022-07-08 20:19:51 +02:00
Agusti Fernandez Pardo 530752147e fix: use zod schema for parsing page query param 2022-07-08 20:15:25 +02:00
Agusti Fernandez Pardo ec24711990 Merge pull request #139 from calcom/fix/axiom-package
fix: add next-axiom to package.json
2022-07-08 19:35:22 +02:00
Agusti Fernandez PardoandOmar López 76d0b0c1ee Update pages/api/users/_get.ts
remove console log statement

Co-authored-by: Omar López <zomars@me.com>
2022-07-08 19:34:26 +02:00
Agusti Fernandez PardoandOmar López 80e414d4f5 Update pages/api/availability/_get.ts
no if just return

Co-authored-by: Omar López <zomars@me.com>
2022-07-08 19:33:50 +02:00
Agusti Fernandez PardoandOmar López a72fbfa093 Update pages/api/availability/_get.ts
improve error message team no members

Co-authored-by: Omar López <zomars@me.com>
2022-07-08 19:33:37 +02:00
Agusti Fernandez PardoandOmar López f6faa8bc46 Update pages/api/users/_get.ts
remove console log

Co-authored-by: Omar López <zomars@me.com>
2022-07-08 19:33:17 +02:00
Agusti Fernandez PardoandOmar López bd485b7b77 Update pages/api/teams/_get.ts
fix prisma import

Co-authored-by: Omar López <zomars@me.com>
2022-07-08 19:33:00 +02:00
zomars 308c192912 Splits booking/[id] endpoint
# Conflicts:
#	pages/api/bookings/[id].ts
2022-07-08 11:22:08 -06:00
zomars 2f032cee47 Splits booking/[id] endpoint 2022-07-08 11:21:40 -06:00
Agusti Fernandez Pardo 03254b83da Merge pull request #144 from calcom/fix/add-middlewares-back-bookingId
fix: add middlewares back
2022-07-08 18:59:20 +02:00
Agusti Fernandez Pardo c2816815cc fix: add middlewares back 2022-07-08 18:58:29 +02:00
Agusti Fernandez Pardo 916ceb57c6 Merge pull request #143 from calcom/fix/missing-return-bookings-id
fix: bookings:id
2022-07-08 18:51:33 +02:00
Agusti Fernandez Pardo 54b36b9624 fix: bookings:id fix bad isAdmin double if adding missing return replace with || OR instead 2022-07-08 18:49:55 +02:00
Agusti Fernandez Pardo 27482daaec Merge pull request #142 from calcom/fix/booking-no-middlewares
fix: remove old middlewares in bookingId
2022-07-08 18:27:53 +02:00
Agusti Fernandez Pardo dfa4c06e54 fix: remove old middlewares in bookingId 2022-07-08 18:27:13 +02:00
Omar López 7d59a1390c Merge pull request #141 from calcom/fix/add-calcomdayjs-prod
fix: add calcom dayjs transpile
2022-07-08 10:02:41 -06:00
Agusti Fernandez Pardo 8425f88464 fix: add calcom dayjs transpile 2022-07-08 17:58:18 +02:00
Agusti Fernandez Pardo c28e96045c fix: adds returns, no breaks 2022-07-08 09:26:47 -06:00
Omar López 4c696b2cea Merge pull request #140 from calcom/fix/booking-id
Fix/booking
2022-07-08 09:25:20 -06:00
Agusti Fernandez Pardo 6b09fb24ab fix: adds returns, no breaks 2022-07-08 17:23:06 +02:00
Agusti Fernandez Pardo 13d013bdf8 Merge branch 'main' into fix/booking-id 2022-07-08 17:14:02 +02:00
Agusti Fernandez Pardo cef2768725 fix: add next-axiom to package.json 2022-07-08 02:05:38 +02:00
Agusti Fernandez Pardo 1266665710 Merge pull request #138 from calcom/chore/add-axiom
feat: add axiom
2022-07-08 02:00:36 +02:00
Agusti Fernandez Pardo 599dccdcce feat: add axiom 2022-07-08 02:00:00 +02:00
Leo Giovanetti a5976ec5c6 Merge pull request #137 from calcom/chore/upgrade-next
Upgrading nextjs
2022-07-07 15:08:51 -03:00
Agusti Fernandez Pardo f93cb48d4d fix: query partial type 2022-07-07 18:56:27 +02:00
Leo Giovanetti ab78c0b9ec Upgrading nextjs 2022-07-06 17:21:12 -03:00
Agusti Fernandez Pardo 44ce77f814 fix: test return booking get 2022-07-06 01:17:59 +02:00
Agusti Fernandez Pardo a6e199be67 fix: make availability for teamId work 2022-07-05 23:05:29 +02:00
Agusti Fernandez Pardo f1ee03f297 fix: add teams memberships users 2022-07-05 20:58:26 +02:00
Agusti Fernandez PardoandOmar López 2263e04217 Update pages/api/availability/_get.ts
add select: availabilitUserSelect

Co-authored-by: Omar López <zomars@me.com>
2022-07-05 20:35:30 +02:00
Agusti Fernandez PardoandOmar López 5dbb2066e0 Update pages/api/availability/_get.ts
add initialData: {user}

Co-authored-by: Omar López <zomars@me.com>
2022-07-05 20:34:53 +02:00
Agusti Fernandez Pardo 9b5c7c5120 fix: remove unused import 2022-07-05 20:13:13 +02:00
Agusti Fernandez Pardo a63b623a7d feat: teamId availability in API 2022-07-05 20:12:14 +02:00
Agusti Fernandez Pardo 74c227f5f1 Merge pull request #134 from calcom/fix/transpile-calcom-dayjs
fix: transpile new @calcom/dayjs package in API
2022-07-02 05:30:59 +02:00
Agusti Fernandez Pardo 517749812d fix: missing @ 2022-07-02 05:04:21 +02:00
Agusti Fernandez Pardo 571f3fda4e fix: transpile new @calcom/dayjs package in API 2022-07-02 04:49:09 +02:00
Agusti Fernandez Pardo be2647790c feat: refactor teams and add team availability 2022-06-30 00:01:14 +02:00
Agusti Fernandez Pardo 6ed007d873 Merge pull request #133 from calcom/fix/api-feedback
fix: address issues raised in preview PR
2022-06-24 01:17:28 +02:00
Agusti Fernandez Pardo 561271f3f6 fix: isAdmin from req, no isAdminGuard everywhere 2022-06-24 00:53:15 +02:00
Agusti Fernandez Pardo f85b00507a fix: add type import for NextApiRequest 2022-06-24 00:47:27 +02:00
zomars 3c32bc8528 Update customPrisma.ts 2022-06-23 16:42:47 -06:00
Omar López bfe27057a0 Update lib/constants.ts 2022-06-23 16:40:01 -06:00
Agusti Fernandez Pardo 4e738cf80c fix: minor readme update 2022-06-24 00:31:55 +02:00
Agusti Fernandez Pardo 61c82eb197 fix: address issues raised in preview PR 2022-06-24 00:26:40 +02:00
Agusti Fernandez Pardo 9b142640d5 Merge pull request #132 from calcom/fix/userId-not-id
fix: userId not, id remove templates stall
2022-06-24 00:12:10 +02:00
Agusti Fernandez Pardo 04b9b71310 fix: userId not, id remove templates stall 2022-06-24 00:09:23 +02:00
Agusti Fernandez Pardo d675535cdf Merge pull request #130 from calcom/feat/dynamic-prisma
Feature: custom Prisma for self-hosted deployments needed for new hosted admin console
2022-06-23 23:39:29 +02:00
Agusti Fernandez Pardo aa64f32378 fix set headers error by adding missing return 2022-06-23 23:20:07 +02:00
Agusti Fernandez Pardo c3996221e1 fix: don't require apiKey if already using customPrisma with calcom license key 2022-06-23 19:16:12 +02:00
zomars 0830abf057 Scripts should be as pure as possible 2022-06-22 13:30:02 -06:00
Agusti Fernandez Pardo b6729d8b82 fix custom prisma works 2022-06-22 05:49:24 +02:00
Agusti Fernandez Pardo 6e78bf15f0 feat: databaseUrl customPrisma 2022-06-21 23:02:43 +02:00
Agusti Fernandez Pardo 7558a73ab7 fix: dont generate schemas for console 2022-06-20 03:18:13 +02:00
Agusti Fernandez Pardo f0f27857fa no package console 2022-06-20 03:14:24 +02:00
Agusti Fernandez Pardo 312664d881 fix generate schemas console 2022-06-20 03:13:03 +02:00
Agusti Fernandez Pardo 48675f4e7a fix add back console 2022-06-20 03:10:10 +02:00
Agusti Fernandez Pardo e68e6d1165 no console in package 2022-06-20 02:30:51 +02:00
Agusti Fernandez Pardo 4626b3dffa fix: 2022-06-20 02:29:18 +02:00
Agusti Fernandez Pardo c3bed7ba8f fix: add console to package 2022-06-20 02:26:20 +02:00
Agusti Fernandez Pardo 39ce6287fc fix: no need to target 2017 2022-06-18 22:30:27 +02:00
Agusti Fernandez Pardo 60688e2e91 fix: make isAdmin require req.prisma too 2022-06-18 03:03:13 +02:00
Agusti Fernandez Pardo cc534a2914 fix: remove console from api deps 2022-06-18 02:35:39 +02:00
Agusti Fernandez Pardo 5b28e9ec1c fix: main merging issues 2022-06-18 02:16:15 +02:00
Agusti Fernandez Pardo 6e68671c2a fix: merge w main 2022-06-18 01:52:37 +02:00
Agusti Fernandez Pardo 374a6e087a feat: remove datacredentials, move to deployment.databaseUrl 2022-06-17 23:23:28 +02:00
Omar López 8f0d1f8c73 Merge pull request #129 from calcom/fix/no-user-metadata
fix: remove user metadta from validations
2022-06-16 15:57:29 -06:00
Agusti Fernandez Pardo 2682db8fcd fix: remove user metadta from validations 2022-06-16 23:38:36 +02:00
Agusti Fernandez Pardo 5a914934dd Merge pull request #127 from calcom/fix/optional-userId-availability
fix: makes id optional in availability
2022-06-16 21:53:15 +02:00
Agusti Fernandez Pardo 29be8f5266 fix: makes id optional in availability 2022-06-16 21:50:41 +02:00
Agusti Fernandez Pardo def5c8dd4c Merge pull request #126 from calcom/feat/improve-readme-deploy
feat: improve deployment docs for api
2022-06-16 03:11:32 +02:00
Agusti Fernandez Pardo 8b87cde733 fix: _delete missing userId rename 2022-06-16 01:48:29 +02:00
Agusti Fernandez Pardo 1889ececf8 feat: improve deployment docs for api 2022-06-16 01:27:26 +02:00
Agusti Fernandez Pardo d3785bb6f8 Merge pull request #125 from calcom/feat/users-id-availability
Feat/users id availability
2022-06-16 01:06:11 +02:00
Agusti Fernandez Pardo 11f3d411b3 fix: rename users id to users userId to easier availability sharing _get endpoint 2022-06-16 00:18:40 +02:00
Agusti Fernandez Pardo 4389288e69 feat: adds users/id/availability endpoint 2022-06-16 00:04:04 +02:00
Agusti Fernandez Pardo bcb61ab280 Merge pull request #124 from calcom/production
Production rebase main
2022-06-15 23:08:11 +02:00
Agusti Fernandez Pardo 998970c4cb fix: remove duplicate users/id 2022-06-15 23:06:30 +02:00
Agusti Fernandez Pardo 3310b9307d fix: undo changes in users 2022-06-15 23:01:16 +02:00
Agusti Fernandez Pardo fe53fd9248 fix: remove comment 2022-06-15 22:59:32 +02:00
Agusti Fernandez Pardo 6349491ae7 feat: admin endpoints for bookings 2022-06-15 22:59:32 +02:00
Agusti Fernandez Pardo dd94df8c97 merging main to prod fixing conflicts in users 2022-06-15 22:59:26 +02:00
Agusti Fernandez Pardo d8d0d42374 fix: only check event type ownership if not admin 2022-06-15 22:57:49 +02:00
Agusti Fernandez Pardo 514a98f9e0 feat: add admin endpoint support for event-types id 2022-06-15 22:57:49 +02:00
Agusti Fernandez Pardo aadde45bb7 fix: add event-types admin endpoints 2022-06-15 22:57:49 +02:00
Agusti Fernandez Pardo 26f861d0d0 Merge pull request #107 from calcom/feat/admin-events
Feat: Add admin enpoints for event-types, bookings, attendees
2022-06-15 21:58:31 +02:00
Agusti Fernandez Pardo 26b9e94568 fix: undo changes in users 2022-06-15 21:16:46 +02:00
Agusti Fernandez Pardo 8c3774e100 fix: remove comment 2022-06-15 21:14:35 +02:00
Agusti Fernandez Pardo 1d2e5f07ef feat: admin endpoints for bookings 2022-06-15 21:10:19 +02:00
Agusti Fernandez Pardo ed1bc8015a feat: initial isAdmin work for events and attendees 2022-06-15 20:43:35 +02:00
Agusti Fernandez Pardo 996ec31b26 Merge branch 'main' into feat/admin-events 2022-06-15 20:11:30 +02:00
Agusti Fernandez Pardo 3c0f8b5b6d Merge branch 'main' into production 2022-06-15 00:28:38 +02:00
Agusti Fernandez Pardo 3eda1507c6 Merge pull request #123 from calcom/fix/build-session
add session to req
2022-06-15 00:21:34 +02:00
Agusti Fernandez Pardo ff701ffec6 fix: no need for app store deps 2022-06-15 00:21:09 +02:00
Agusti Fernandez Pardo 5559e63be1 fix add app-store to deps 2022-06-15 00:19:39 +02:00
Agusti Fernandez Pardo 7218109755 Merge branch 'main' into fix/build-session 2022-06-15 00:10:37 +02:00
Omar López ab26f35520 Update package.json 2022-06-14 16:04:40 -06:00
Agusti Fernandez Pardo 1e80a83b1f add session to req 2022-06-14 23:57:38 +02:00
Omar López 42259e249c Merge pull request #122 from calcom/fix/middleware-availability 2022-06-14 15:44:59 -06:00
Agusti Fernandez Pardo 1bde5d88c1 fix: add back optional 2022-06-14 23:43:53 +02:00
Agusti Fernandez Pardo 372b20a4c9 fix: no post for now 2022-06-14 23:42:51 +02:00
Agusti Fernandez Pardo ba37ae78d9 fix: adds middleware, makes userId not optional 2022-06-14 23:41:33 +02:00
zomars e15100571e Merge branch 'main' into production 2022-06-14 15:25:35 -06:00
zomars e1bcd38e61 Adds basic availability endpoint 2022-06-14 15:17:09 -06:00
zomars 3cb2a8b866 Matches transpilling modules to web 2022-06-14 15:13:59 -06:00
zomars 910c0a9507 Merge branch 'main' into production 2022-06-14 15:00:21 -06:00
zomars 1ab81fb8ee Better error on user delete 2022-06-14 14:51:23 -06:00
zomars ae9c33ddbe Makes user create/update body strict 2022-06-14 14:44:09 -06:00
zomars 0f72a9084a Splits user endpoints by method 2022-06-14 14:35:15 -06:00
zomars 7d0cef065f Refactors user id endpoint 2022-06-14 14:10:59 -06:00
zomars 58e1ea9bf6 User endpoint refactoring 2022-06-14 14:08:58 -06:00
zomars 4d93b08e4c Scripts fixes 2022-06-14 14:08:41 -06:00
zomars 49087d858e Fixes hot-reload for dev 2022-06-14 14:07:23 -06:00
Agusti Fernandez Pardo f3d7922efd move caching time constant to API 2022-06-14 19:48:47 +02:00
Agusti Fernandez Pardo ab6a99749f fix: linting 2022-06-14 00:32:07 +02:00
Agusti Fernandez Pardo d8d9d4a375 Merge branch 'main' into production 2022-06-13 23:59:31 +02:00
Agusti Fernandez Pardo 55d8af0ae9 Merge pull request #121 from calcom/fix/user-metadata
fix: make jsonSchema.optional()
2022-06-13 23:58:52 +02:00
Agusti Fernandez Pardo b1dd1b8572 fix: make jsonSchema.optional() 2022-06-13 23:58:15 +02:00
Syed Ali Shahbaz e4ec3a04e9 Merge branch 'main' into production 2022-06-13 13:29:51 +05:30
Syed Ali Shahbaz 01f5891f9d Merge pull request #120 from calcom/debug/webhook-calls
Adds debug console.log
2022-06-13 13:29:30 +05:30
Syed Ali Shahbaz b385d3547b Adds debug console.log 2022-06-13 13:24:21 +05:30
Syed Ali Shahbaz 1cd852af7d Merge branch 'main' into production 2022-06-12 11:47:10 +05:30
Syed Ali Shahbaz 6872107614 Merge pull request #118 from calcom/debug/webhook-list
debug logs added
2022-06-12 11:46:44 +05:30
Syed Ali Shahbaz ecce02ebbf debug logs added 2022-06-12 11:43:26 +05:30
Syed Ali Shahbaz e278e13e83 Merge branch 'main' into production 2022-06-12 11:30:48 +05:30
Syed Ali Shahbaz 4cac1328d1 Merge pull request #117 from calcom/hotfix/prettier-fix
fix prettier
2022-06-12 11:30:23 +05:30
Syed Ali Shahbaz 935473cfcd removed comment 2022-06-12 11:25:53 +05:30
Syed Ali Shahbaz bd88bec1d2 fix prettier 2022-06-12 11:24:38 +05:30
Syed Ali Shahbaz 5628c0b033 Merge pull request #116 from calcom/fix/call-webhook-before-booking-response
call webhook before sending booking response
2022-06-12 11:19:02 +05:30
Syed Ali Shahbaz 470c43befe call webhook before sending booking response 2022-06-12 11:16:16 +05:30
Agusti Fernandez Pardo 99f9964d12 Merge branch 'main' into production 2022-06-12 01:27:51 +02:00
Syed Ali Shahbaz a4185582f5 Merge pull request #115 from calcom/debug/booking-api
Debug booking API
2022-06-11 22:41:57 +05:30
Syed Ali Shahbaz 910a0f386a Debug booking API 2022-06-11 22:39:03 +05:30
Syed Ali Shahbaz fc95d8bb42 Merge pull request #114 from calcom/main
Main to production
2022-06-11 17:22:29 +05:30
Syed Ali Shahbaz 4ba0e7752d Merge pull request #113 from calcom/hotfix/webhook-booking-api
Hotfix webhook API booking issues
2022-06-11 17:06:04 +05:30
Syed Ali Shahbaz 719e21497b removed invalid response 2022-06-11 17:03:11 +05:30
Syed Ali Shahbaz 3c98c5cefc fixing id to uid in create body 2022-06-11 16:58:21 +05:30
Syed Ali Shahbaz 61e742ed5e uuid automate in booking API 2022-06-11 16:57:35 +05:30
Syed Ali Shahbaz 110edd7dcc removed 18next rel 2022-06-11 16:54:30 +05:30
Syed Ali Shahbaz bbe5eba550 Merge pull request #112 from calcom/feat/trigger-webhook-from-booking-api
Trigger webhook from booking api - MVP
2022-06-11 16:32:57 +05:30
Syed Ali Shahbaz 99e58c414c prettier fix -3 2022-06-10 16:36:28 +05:30
Syed Ali Shahbaz 301c132815 prettier fix attempt-2 2022-06-10 16:21:55 +05:30
Syed Ali Shahbaz 5453af6d6e prettier fix attempt 2022-06-10 15:57:31 +05:30
Syed Ali Shahbaz 8339d339a1 prettier and payload fix 2022-06-10 13:38:45 +05:30
Syed Ali Shahbaz 54353f99d1 Calendar event changed to any for loose allowance 2022-06-10 13:32:47 +05:30
Syed Ali Shahbaz f1c98181d2 tfunction added 2022-06-10 13:30:43 +05:30
Syed Ali Shahbaz ef5bbfe4f9 fixed timeZone key 2022-06-10 13:22:06 +05:30
Syed Ali Shahbaz a8ad052a03 --convert date to string in calendar event 2022-06-10 13:16:58 +05:30
Syed Ali Shahbaz cd3a80006c --fix 2022-06-10 13:10:16 +05:30
Syed Ali Shahbaz adab79040f --fix 2022-06-10 13:06:22 +05:30
Syed Ali Shahbaz 4431142d4e remove unnecessary return 2022-06-10 12:58:04 +05:30
Syed Ali Shahbaz f9c20bc8ce --fix null estimated value 2022-06-10 12:53:59 +05:30
Syed Ali Shahbaz 4f36681006 --fix 2022-06-10 12:51:24 +05:30
Syed Ali Shahbaz e3822c50d0 Update booking file with webhook payload 2022-06-10 12:43:41 +05:30
Syed Ali Shahbaz 804de67868 Add eventName file 2022-06-10 12:17:00 +05:30
Syed Ali Shahbaz 542beb0079 adjust booking file 2022-06-10 11:46:51 +05:30
Syed Ali Shahbaz 664e697d40 add sendPayload file 2022-06-10 11:42:01 +05:30
Syed Ali Shahbaz cd482cd91a Add getWebhook function 2022-06-10 11:40:38 +05:30
Syed Ali Shahbaz d569296654 Add webhook trigger --init 2022-06-09 17:09:20 +05:30
Agusti Fernandez Pardo 180e925bed feat: dynamic prisma almost working 2022-06-08 18:52:25 +02:00
Syed Ali Shahbaz 19446c265f Merge pull request #111 from calcom/hotfix/webhook-error-throw
Hotfix/webhook error throw
2022-06-08 13:28:59 +05:30
Syed Ali Shahbaz db6f5cad15 401 message fix 2022-06-08 13:28:22 +05:30
Syed Ali Shahbaz 9b1dffbdb9 401 return fix 2022-06-08 13:27:48 +05:30
Syed Ali Shahbaz 4e97133751 Merge pull request #110 from calcom/fix/webhook-issue
Hotfix CTX removal from webhooks
2022-06-08 13:21:17 +05:30
Syed Ali Shahbaz b881312f10 hotfix ctx removal 2022-06-08 13:20:44 +05:30
Syed Ali Shahbaz ef3838b476 hotfix ctx removal 2022-06-08 13:20:09 +05:30
Syed Ali Shahbaz cabafbdd77 Merge pull request #109 from calcom/fix/webhook-eventtype-assoc-security
Webhook event type association security
2022-06-08 13:14:53 +05:30
Syed Ali Shahbaz bae84f2ce4 Added team event check to POST 2022-06-08 13:12:05 +05:30
Syed Ali Shahbaz cd03f5a821 Adds team event type check 2022-06-08 13:06:28 +05:30
Agusti Fernandez Pardo e407a16766 feat: dynamic prisma 2022-06-06 18:17:10 +02:00
Agusti Fernandez Pardo 0eed3e51e4 fix: only check event type ownership if not admin 2022-06-04 02:26:16 +02:00
Agusti Fernandez Pardo 0fc374c810 feat: add admin endpoint support for event-types id 2022-06-04 01:32:05 +02:00
Agusti Fernandez Pardo 12b7b3ecbf fix: add event-types admin endpoints 2022-06-04 01:17:01 +02:00
Agusti Fernandez Pardo 1180f3f258 Merge pull request #105 from calcom/feat/uuid-hooks
feat: adds automatic generation of uuid id for webhooks create on API
2022-06-02 15:56:01 +02:00
Agusti Fernandez Pardo fe73973b7a fix: add uuid to api/package.json 2022-06-02 15:55:52 +02:00
Agusti Fernandez Pardo 3fc22a8eff fix: remove comments 2022-06-01 17:08:01 +02:00
Agusti Fernandez Pardo 43b94d3e96 feat: adds automatic generation of uuid id for webhooks create on API 2022-06-01 17:05:33 +02:00
Agusti Fernandez Pardo 767f170cae Merge pull request #103 from calcom/feat/admin-users
feat: Admin API users manegement endpoints
2022-05-31 21:00:51 +02:00
Agusti Fernandez Pardo 7f42cc8479 fix: improve admin check using enum instead of string 2022-05-31 20:46:09 +02:00
Agusti Fernandez Pardo 187d5f2b10 docs: add some comments 2022-05-31 18:53:41 +02:00
Agusti Fernandez Pardo 4eccc8a74b fix: build error jsonSchema metadata not nullable 2022-05-31 18:42:20 +02:00
Agusti Fernandez Pardo 9459b9048d feat: Admin API users manegement endpoints 2022-05-31 18:33:01 +02:00
Agusti Fernandez Pardo 849c4aa240 Merge pull request #102 from calcom/fix/event-type-validations
Fix/event type validations
2022-05-28 01:52:06 +02:00
Agusti Fernandez Pardo 9c3f85834f fix: remove console logs 2022-05-28 01:51:25 +02:00
Agusti Fernandez Pardo eea7c11488 fix event type valdiations 2022-05-28 01:50:28 +02:00
Agusti Fernandez Pardo 2cd548bdb2 fix: or z nul 2022-05-27 22:04:08 +02:00
Agusti Fernandez Pardo b9a2e0f4c6 fix: event types validations recurring event and locations nullable: 2022-05-27 21:58:38 +02:00
Agusti Fernandez Pardo 0b66e964fe fix: some logggingeventtypeid 2022-05-27 21:51:40 +02:00
Agusti Fernandez Pardo eee5fd0090 Merge pull request #101 from calcom/fix-event-types-id
fix: event types id endpoints
2022-05-27 21:45:17 +02:00
Agusti Fernandez Pardo be4ca8835e fix: event types id endpoints 2022-05-27 21:44:45 +02:00
Agusti Fernandez Pardo 81d2917a3d Merge pull request #100 from calcom/production
Production
2022-05-27 21:20:01 +02:00
Agusti Fernandez Pardo 458f37f5e9 Merge branch 'main' into production 2022-05-27 21:19:43 +02:00
Agusti Fernandez Pardo 8627b28a8e fix: conflicts 2022-05-27 21:18:47 +02:00
Agusti Fernandez Pardo b52832f333 fix 2022-05-27 21:01:15 +02:00
Agusti Fernandez Pardo f40e799769 fix event types 2022-05-27 21:01:15 +02:00
Agusti Fernandez Pardo 5b65bd1b66 fix 2022-05-27 21:01:15 +02:00
Agusti Fernandez Pardo 824d01f358 fix: move log of userId 2022-05-27 21:01:15 +02:00
Agusti Fernandez Pardo a91dd428c0 fix 2022-05-27 21:01:01 +02:00
Agusti Fernandez Pardo 9f50972570 fix event-types 2022-05-27 20:49:50 +02:00
Agusti Fernandez Pardo d09fa56f63 fix 2022-05-27 20:47:02 +02:00
Agusti Fernandez Pardo 46e0b8f4f5 fix: moves event-types to find user including it's event-types 2022-05-27 20:46:53 +02:00
Syed Ali Shahbaz 49ef2c341d prettier fix again 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz de557fccce prettier fix 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz c47329c292 More fix 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz c185883e5a Fixed enum 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 81793aebcd Further prettier changes 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 4c7dc10f7d Fixing prettier 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 35ba69fb8a added ID 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 014a682d64 More debug 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz fbe3d2fd10 more debug 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 7c6141fdff Debug create err 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 4aba0af1b4 Updated webhook validations 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz 2109001af1 Fixes any invocation 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz fe3f6a70f3 Added schema for create 2022-05-27 20:46:22 +02:00
Syed Ali Shahbaz a945d5a61c Enabled webhook create call 2022-05-27 20:46:22 +02:00
Agusti Fernandez Pardo 10e8677894 Merge pull request #99 from calcom/fix/event-types-user-centric-query
fix: moves event-types to find user including it's event-types
2022-05-27 20:44:31 +02:00
Agusti Fernandez Pardo 8f9a970fb6 fix: moves event-types to find user including it's event-types 2022-05-27 20:43:10 +02:00
Syed Ali Shahbaz ed2f42fb01 Merge pull request #98 from calcom/fix/debug-webhook
Updated webhook validations
2022-05-26 12:40:08 +05:30
Syed Ali Shahbaz 8721a04d44 prettier fix again 2022-05-26 12:35:28 +05:30
Syed Ali Shahbaz e8e36abc75 prettier fix 2022-05-26 12:32:04 +05:30
Syed Ali Shahbaz 7b936073a4 More fix 2022-05-26 12:28:38 +05:30
Syed Ali Shahbaz b408015df4 Fixed enum 2022-05-26 12:25:13 +05:30
Syed Ali Shahbaz 09acaef904 Further prettier changes 2022-05-26 12:20:32 +05:30
Syed Ali Shahbaz 316c5a1266 Fixing prettier 2022-05-26 12:16:51 +05:30
Syed Ali Shahbaz 5e3b51c621 added ID 2022-05-26 12:12:13 +05:30
Syed Ali Shahbaz 92b011214c More debug 2022-05-26 12:06:15 +05:30
Syed Ali Shahbaz d372c4c526 more debug 2022-05-26 12:03:14 +05:30
Syed Ali Shahbaz 4737778dc1 Debug create err 2022-05-26 11:41:36 +05:30
Syed Ali Shahbaz b9c5590a47 Updated webhook validations 2022-05-26 11:20:49 +05:30
Syed Ali Shahbaz 76b3f1ba3a Merge pull request #97 from calcom/hotfix/any-fix
Fixes any invocation
2022-05-25 15:07:48 +05:30
Syed Ali Shahbaz fbab89cf40 Fixes any invocation 2022-05-25 15:07:19 +05:30
Syed Ali Shahbaz 7e46f4bb84 Merge pull request #96 from calcom/fix/webhook-create
Fix/webhook create
2022-05-25 14:30:36 +05:30
Syed Ali Shahbaz 2e22978838 Added schema for create 2022-05-25 14:23:43 +05:30
Syed Ali Shahbaz 0e95a1d3e8 Enabled webhook create call 2022-05-25 14:13:52 +05:30
Agusti Fernandez Pardo 6099bfb4ee fix: more logging 2022-05-23 23:23:53 +02:00
Agusti Fernandez Pardo 4629c5d5c7 fix: move log of userId 2022-05-23 23:18:41 +02:00
Agusti Fernandez Pardo 14aca7ef2b Merge pull request #95 from calcom/production
hotfix: debugging event-types in prod
2022-05-23 23:13:22 +02:00
Agusti Fernandez Pardo beca5152e9 hotfix: debugging event-types in prod 2022-05-23 22:55:53 +02:00
zomars 44f0830b16 Syncs zod version 2022-05-23 13:20:12 -06:00
zomars 40f1f9714e Build fixes 2022-05-23 13:17:43 -06:00
Agusti Fernandez Pardo 2e117d07c8 Merge pull request #93 from calcom/fix-node-15
fix: engines node 15 or greater
2022-05-20 23:07:35 +02:00
Agusti Fernandez Pardo 4a1dff6596 fix 2022-05-20 23:02:17 +02:00
Agusti Fernandez Pardo 6c0d4de8f3 fix: move clone from main to feat/v15x 2022-05-20 22:59:15 +02:00
Agusti Fernandez Pardo 2340ed2876 fix: engines node 15 or greater 2022-05-20 22:39:42 +02:00
Agusti Fernandez Pardo 2f9d1b97d4 Merge pull request #92 from calcom/fix/disable-post-hook
fix: disable post
2022-05-20 22:15:58 +02:00
Agusti Fernandez Pardo 93d9c4f6d0 fix: disable post 2022-05-20 22:15:25 +02:00
Agusti Fernandez Pardo f3ff4a8014 Merge pull request #91 from calcom/fix/webhooks
fix: dont use schemareadpublic
2022-05-20 22:10:52 +02:00
Agusti Fernandez Pardo 1585b2d8f9 fix: dont use schemareadpublic 2022-05-20 22:10:13 +02:00
Agusti Fernandez Pardo 5f9eb6fa27 Merge pull request #90 from calcom/fix-nopick
Fix nopick
2022-05-20 21:58:20 +02:00
Agusti Fernandez Pardo 1f8c895900 fix: hooks 2022-05-20 21:52:41 +02:00
Agusti Fernandez Pardo f9e98228c7 merge directly 2022-05-20 21:48:24 +02:00
Agusti Fernandez Pardo dbf4590ba7 Merge pull request #89 from calcom/fix/hooks-dont-parse
fix: hooks dont parse before read
2022-05-20 21:32:07 +02:00
Agusti Fernandez Pardo f1175a06f6 fix: hooks dont parse before read 2022-05-20 21:27:11 +02:00
Agusti Fernandez Pardo 8c8235c3c7 fix: dont parse hooks before read 2022-05-20 21:21:11 +02:00
Agusti Fernandez Pardo b54db574e1 Merge pull request #88 from calcom/fix/add-dep-zod
fix: update jest, add zod as dep
2022-05-20 20:58:21 +02:00
Agusti Fernandez Pardo 496328b035 fix: add strict true to tsconfig 2022-05-20 20:48:30 +02:00
Agusti Fernandez Pardo 656ceefe25 fix: zod same version as webwebsite 2022-05-20 20:31:15 +02:00
Agusti Fernandez Pardo 2fdeb2fc5e fix: no strict in baseparams attendee 2022-05-20 19:43:23 +02:00
Agusti Fernandez Pardo 2413e30c69 fix: update jest, add zod as dep 2022-05-20 19:25:38 +02:00
Agusti Fernandez Pardo 8ae59a5637 Merge pull request #87 from calcom/fix/add-console-events
fix: adds console log to debug event-types
2022-05-20 03:47:41 +02:00
Agusti Fernandez Pardo 418a4271d9 fix: adds console log to debug event-types 2022-05-20 03:46:01 +02:00
Agusti Fernandez Pardo 82da509eac Merge pull request #86 from calcom/fix-event-type
fix: event type validations skip
2022-05-20 03:40:58 +02:00
Agusti Fernandez Pardo 1717f14e83 fix: event type validations skip 2022-05-20 03:40:14 +02:00
Agusti Fernandez Pardo d991c68b08 Merge pull request #85 from calcom/fix/build-hooks
Fix/build hooks
2022-05-20 03:23:15 +02:00
Agusti Fernandez Pardo f6746c4cf9 fix: rmeove comment to fix build 2022-05-20 03:15:04 +02:00
Agusti Fernandez Pardo 9132bb51eb fix: disable create user post no role admin yet 2022-05-20 03:10:28 +02:00
Agusti Fernandez Pardo f1cf8ba94b fix: query { [key: string]: string | string[]; } 2022-05-20 03:06:05 +02:00
Agusti Fernandez Pardo f22257977d fix: body any 2022-05-20 03:01:47 +02:00
Agusti Fernandez Pardo 4fb1c14d3d fix: body unknown 2022-05-20 02:57:24 +02:00
Agusti Fernandez Pardo b755d2bd71 fix: build and validations for event-type, bring back req extension 2022-05-20 02:47:20 +02:00
Agusti Fernandez Pardo 29deb1fd3c fix: add back req extend types 2022-05-20 02:19:33 +02:00
Agusti Fernandez Pardo d23fa4be4e fix: add comment to fix later any 2022-05-20 01:47:17 +02:00
Agusti Fernandez Pardo dc967b7d9e fix: hooks, event-types and booking references 2022-05-20 01:45:54 +02:00
Agusti Fernandez Pardo f2ce2f324b fix: build webhooks and event-types 2022-05-20 00:58:42 +02:00
Agusti Fernandez Pardo 2e8f42c5d7 Merge pull request #84 from calcom/fix-build
fix: build issues, extend event-type in types, use @calcom/types
2022-05-19 22:08:34 +02:00
Agusti Fernandez Pardo d103776846 fix: add back types until merged into main 2022-05-19 22:05:26 +02:00
Agusti Fernandez Pardo fdc46fac7d fix: build issues, extend event-type in types, use @calcom/types 2022-05-19 22:00:22 +02:00
Syed Ali Shahbaz 54f2edef30 Merge pull request #83 from calcom/fix/webhook
Updates webhook API params and read picks
2022-05-19 16:44:22 +05:30
Syed Ali Shahbaz 95a1e32454 Fixes subscriber URL z type 2022-05-19 16:40:27 +05:30
Syed Ali Shahbaz bc844f29ba Updates Webhook edit params 2022-05-19 16:38:44 +05:30
Syed Ali Shahbaz 74efa1f86e Updates Webhook pick 2022-05-19 16:35:25 +05:30
Agusti Fernandez Pardo 7d8ed47268 Merge pull request #82 from calcom/fix/schema-event-type
fix typeof schemaEventTypeReadPublic
2022-05-18 22:05:22 +02:00
Agusti Fernandez Pardo 26888a3630 fix typeof schemaEventTypeReadPublic 2022-05-18 22:03:36 +02:00
Agusti Fernandez Pardo ba4abacb1a Merge pull request #81 from calcom/fix/dont-cal
Fix/dont cal
2022-05-18 21:51:13 +02:00
Agusti Fernandez Pardo df16126a49 fix: object or null instead of json for extends event-types 2022-05-18 21:50:34 +02:00
Agusti Fernandez Pardo 27053e7c80 fix: dont replace cal_ 2022-05-18 21:48:13 +02:00
Agusti Fernandez Pardo 780fd401db Merge pull request #80 from calcom/fix/event-valid
fix: dont overdo validation on read event-type
2022-05-18 20:45:14 +02:00
Agusti Fernandez Pardo 5bb2c54648 fix: add fallback for keys generated with cal_ instead of cal_live_ prefix 2022-05-18 20:29:35 +02:00
Agusti Fernandez Pardo 37069e2d7b fix: omit metadata/locations and rewrite as json 2022-05-18 20:22:43 +02:00
Agusti Fernandez Pardo e7a7c89071 fix add locations metadata and recurring events to eventtype response 2022-05-18 19:51:40 +02:00
Agusti Fernandez Pardo 7b90ccb3bf fix: add locations to event type in response types 2022-05-18 19:49:42 +02:00
Agusti Fernandez Pardo 5c97283aa1 fix: dont add locations/metadata on create event type 2022-05-18 19:39:31 +02:00
Agusti Fernandez Pardo eb03188d78 fix: dont validate read event-type 2022-05-18 19:25:50 +02:00
Agusti Fernandez Pardo 35ebf53f19 fix: json validation 2022-05-18 19:21:48 +02:00
Agusti Fernandez Pardo 957d6d2375 fix: locations or z null 2022-05-18 19:10:16 +02:00
Agusti Fernandez Pardo b7f9791439 fix: add locations any too 2022-05-18 19:00:27 +02:00
Agusti Fernandez Pardo b95c064828 fix: metadata zany 2022-05-18 18:58:37 +02:00
Agusti Fernandez Pardo 93b2e96144 fix: dont overdo validation on read event-type 2022-05-18 18:51:19 +02:00
Agusti Fernandez Pardo a3f23ef3c0 Merge pull request #79 from calcom/fix/event-validations
fix: event type jsonschema or znull
2022-05-18 17:51:48 +02:00
Agusti Fernandez Pardo b237d71b2b fix: event type jsonschema or znull 2022-05-18 17:46:22 +02:00
Agusti Fernandez Pardo a7889b3436 Merge pull request #78 from calcom/fix/meta
Fix/meta
2022-05-18 15:29:42 +02:00
Agusti Fernandez Pardo f29124866c fix: recurring and metadata as jsonSchema on read too 2022-05-18 15:23:18 +02:00
Agusti Fernandez Pardo d5ecb383b4 fix: no metadata 2022-05-18 15:16:16 +02:00
Agusti Fernandez Pardo c5dcf42807 fix: any 2022-05-18 15:12:29 +02:00
Agusti Fernandez Pardo e25d0d79a0 fix: merge metadata jsonSchema nullable nullish 2022-05-18 15:04:44 +02:00
Agusti Fernandez Pardo db09aeb50a fix: dont merge on read 2022-05-18 15:00:09 +02:00
Agusti Fernandez Pardo 8add68c668 fix: no metadata-true 2022-05-18 14:55:05 +02:00
Agusti Fernandez Pardo 91f9405fa0 fix: metadata 2022-05-18 14:48:11 +02:00
Agusti Fernandez Pardo 8481a96829 fix: null or 2022-05-18 14:41:55 +02:00
Agusti Fernandez Pardo 0ca9748674 fix: dont throw err on bad query 2022-05-18 14:27:30 +02:00
Agusti Fernandez Pardo e183df1a1b fix: add back metadata to pick 2022-05-18 14:13:29 +02:00
Agusti Fernandez Pardo f04f5d8ca8 fix: add partial() 2022-05-18 14:08:52 +02:00
Agusti Fernandez Pardo a2c7eed853 fix: add back metadata true 2022-05-18 14:03:38 +02:00
Agusti Fernandez Pardo 075808ce40 fix event types 2022-05-18 13:55:05 +02:00
Agusti Fernandez Pardo 47ce92714b fix rewrite metadata 2022-05-17 22:49:12 +02:00
Agusti Fernandez Pardo f8554031ae fix: pass data directly 2022-05-17 22:41:54 +02:00
Agusti Fernandez Pardo f2ea38b440 fix: parse metadata 2022-05-17 22:37:43 +02:00
Agusti Fernandez Pardo fa157961be fix: dont parse on read event-type 2022-05-17 22:32:49 +02:00
Agusti Fernandez Pardo a39d396c8e fix: add back commented out base params 2022-05-17 22:25:38 +02:00
Agusti Fernandez Pardo b49df1a7aa fix: dont read metadata for now 2022-05-17 22:21:00 +02:00
Agusti Fernandez Pardo 4d6dbd39cd fix: dont merge base params 2022-05-17 22:17:05 +02:00
Agusti Fernandez Pardo 5072ac7d52 fix: any or null 2022-05-17 22:13:33 +02:00
Agusti Fernandez Pardo 8a62c3948d fix: metadata null or json schema 2022-05-17 22:09:44 +02:00
Agusti Fernandez Pardo e76ebd64f4 Merge pull request #77 from calcom/fix/remove-metadata-from-read
fix: metadata nullish
2022-05-17 22:04:24 +02:00
Agusti Fernandez Pardo f3271f7724 fix: metadata nullish 2022-05-17 22:03:26 +02:00
Agusti Fernandez Pardo 68f62c5064 Merge pull request #76 from calcom/fix/remove-metadata-from-read
Fix: removes metadata from pick on readPublic for event-type
2022-05-17 21:58:04 +02:00
Agusti Fernandez Pardo a70f80ff6d Fix: removes metadata from pick on readPublic for event-type 2022-05-17 21:57:47 +02:00
Agusti Fernandez Pardo 754d0992ea Merge pull request #75 from calcom/fix/remove-metadata-pick
fix: removes metadata from pick so they dont clash
2022-05-17 21:53:42 +02:00
Agusti Fernandez Pardo ad8bfd544e fix: removes metadata from pick so they dont clash 2022-05-17 21:52:55 +02:00
Agusti Fernandez Pardo fd3b812c98 Merge pull request #74 from calcom/fix-event-type-json-optional
fix: event type make locations metadata and recurringEvent nullable a…
2022-05-17 21:51:52 +02:00
Agusti Fernandez Pardo f55aaf3eaa fix: event type make locations metadata and recurringEvent nullable and optional 2022-05-17 21:51:26 +02:00
Agusti Fernandez Pardo c52045486d Merge pull request #73 from calcom/fix/metadata-nullish
Fix: metadata nullish
2022-05-17 21:46:53 +02:00
Agusti Fernandez Pardo c5fa861d41 Fix: metadata nullish 2022-05-17 21:45:16 +02:00
zomars 64f5ac5723 Removed yarn.lock in favor of monorepo 2022-05-17 13:17:59 -06:00
Agusti Fernandez Pardo 679f81d00d Merge pull request #72 from calcom/fix/remove-unused-import
fix: removes unused import in event type validation
2022-05-17 19:43:37 +02:00
Agusti Fernandez Pardo 29166f1585 fix: removes unused import in event type validation 2022-05-17 19:43:19 +02:00
Agusti Fernandez Pardo d6aa70cdd0 Merge pull request #71 from calcom/fix/api-production
Fix/api production
2022-05-17 19:33:57 +02:00
Agusti Fernandez Pardo 5aa0b37443 fix build and pass lint 2022-05-17 19:33:18 +02:00
Agusti Fernandez Pardo 3366627835 fix: event-type params 2022-05-17 14:40:19 +02:00
zomars d8b9bbc452 Linting 2022-05-16 15:06:29 -06:00
Agusti Fernandez Pardo 9afbb3d127 fix: event-type validations move to pick not omit and separate create/edit 2022-05-16 21:59:22 +02:00
Agusti Fernandez Pardo 8f05c3e991 Merge pull request #70 from calcom/fix/disable-users-post
fix: disable admin only post endpoint for users as makes build fail u…
2022-05-11 16:02:01 +02:00
Agusti Fernandez Pardo 72444792bc fix: disable admin only post endpoint for users as makes build fail until impersonate PR merged into web main/prod 2022-05-11 16:01:35 +02:00
Agusti Fernandez Pardo 8804495e3c Merge pull request #69 from calcom/feat-bookings-references
fix: webhooks upgraded to new version, need to update templates
2022-05-11 15:57:30 +02:00
Agusti Fernandez Pardo 7deb5f8e1f fix: webhooks upgraded to new version, need to update templates 2022-05-11 15:57:00 +02:00
Agusti Fernandez Pardo 982c32e92c Merge pull request #67 from calcom/feat/add-webhook
added webhook endpoint
2022-05-10 21:10:18 +02:00
Agusti Fernandez Pardo d4086e21b5 Update README.md 2022-05-10 19:58:48 +02:00
Agusti Fernandez Pardo 3bf5d77782 Merge pull request #68 from calcom/feat/sdk-adduser
Feat/sdk adduser
2022-05-10 19:53:40 +02:00
Agusti Fernandez Pardo 4c131fbcdd feat: adds auth/signup for ee customers 2022-05-10 19:52:59 +02:00
Syed Ali Shahbaz 17d8551442 added webhook endpoint 2022-05-10 13:26:38 +05:30
Agusti Fernandez Pardo 08eeb36d47 feat: add operationId for autogenerated sdk 2022-05-05 18:18:00 +02:00
Agusti Fernandez Pardo 1f2b59c18d feat: adds users post endpoint for admin only 2022-05-05 05:02:59 +02:00
Agusti Fernandez Pardo be2d4338ee Merge pull request #66 from calcom/fix/docs-url 2022-05-02 17:50:00 +02:00
Hariom Balhara 1703976a4f Fix docs request 2022-05-02 11:30:08 +05:30
Agusti Fernandez Pardo 6124577bc2 Merge pull request #65 from calcom/fix/api-hariom 2022-05-01 00:41:30 +02:00
Agusti Fernandez Pardo a41fc5732e fix: readme 2022-05-01 00:36:59 +02:00
Agusti Fernandez Pardo 8aa4852b87 remove headers from next config, add rewrites from hariom pr 2022-05-01 00:33:05 +02:00
Agusti Fernandez Pardo 886b101887 fix: makes patch work by working around and faking production for yarn dev in api 2022-04-30 23:57:57 +02:00
Agusti Fernandez Pardo a2d16800aa Fixes: with hariom help for running api in prod for swagger even in dev 2022-04-30 23:07:21 +02:00
Agusti Fernandez Pardo 167a42156d Merge pull request #63 from calcom/fix-openapi-spec
docs: improve open api spec, fixing all issues, removes json-schema / models
2022-04-30 20:58:43 +02:00
Agusti Fernandez Pardo b572e4b0ff fix: move all req to deconstructed 2022-04-30 20:53:19 +02:00
Agusti Fernandez Pardo e27600b8c7 remove comment 2022-04-30 19:47:26 +02:00
Agusti Fernandez Pardo 005d0f8040 fix: channels removed 2022-04-30 19:46:04 +02:00
Agusti Fernandez Pardo 4321fec734 fix: remove json schema 2022-04-30 05:09:54 +02:00
Agusti Fernandez Pardo 57aeb19c66 fix: pass enableCors true to swaggeruireact props doesn't seem to work 2022-04-29 19:45:33 +02:00
Agusti Fernandez Pardo c8d776aeb7 fix: remove extra comments 2022-04-29 17:36:25 +02:00
Agusti Fernandez Pardo 9bb0f82075 fix: improve comments, no anys 2022-04-29 17:29:57 +02:00
Agusti Fernandez Pardo d06a9488e4 fix: rename endpoints to be only 2 words max 2022-04-29 02:49:38 +02:00
Agusti Fernandez Pardo e13ea234b8 fix: improve docs in attendees availabilities and booking references 2022-04-29 02:30:59 +02:00
Agusti Fernandez Pardo d6c34a8e51 fix: remove empty lines 2022-04-29 01:54:21 +02:00
Agusti Fernandez Pardo bb28680413 fixes all openapi spect issues, removes json-schema auto-generated moving to manual examples 2022-04-29 01:38:40 +02:00
Agusti Fernandez 2449d90bcb Merge pull request #62 from calcom/fix/build-err-attendee-optional-name 2022-04-27 20:25:18 +02:00
Agusti Fernandez Pardo 217336d13d fixes build error removing optional from name in create params validation 2022-04-27 20:24:30 +02:00
Agusti Fernandez 1dce6817ae Merge pull request #61 from calcom/fix/validations-pick-not-omit-by-default-separate-create-edit 2022-04-27 19:54:44 +02:00
Agusti Fernandez Pardo 238b03791e Fix: add strict and optional to have errors on extraneus params 2022-04-27 19:45:59 +02:00
Agusti Fernandez Pardo e52af0bbef fix: post / patch attendees docs w examples 2022-04-27 19:25:36 +02:00
Agusti Fernandez Pardo 14e2964a6d fix: booking reference moved to pick-first create/edit separate validations 2022-04-26 22:48:15 +02:00
Agusti Fernandez Pardo 6997606a4c fix: moves to pick and separates availabilities 2022-04-26 22:23:33 +02:00
Agusti Fernandez Pardo 3759eccfca fix: attendees move to use pick, separate patch/post 2022-04-26 22:12:28 +02:00
Agusti Fernandez bceeeebfb8 Merge pull request #60 from calcom/fix/add-servers-openapi-spec 2022-04-26 21:57:58 +02:00
Agusti Fernandez Pardo fa30b52988 remove v1 from specs 2022-04-26 21:56:59 +02:00
Agusti Fernandez 944e9b181f Merge pull request #59 from calcom/fix/attendees-id 2022-04-25 06:20:03 +02:00
Agusti Fernandez Pardo ad04be9394 fix: availability patch 2022-04-25 06:13:27 +02:00
Agusti Fernandez Pardo b6bce18b29 fix: build availabilities validation start/endTime accept only dates no numbers or strings too 2022-04-25 06:04:42 +02:00
Agusti Fernandez Pardo 804fe27458 fix availabilites validations 2022-04-25 03:12:33 +02:00
Agusti Fernandez Pardo b38f78bbad fix: remove withValidSchedule from get/patch/delete shared endpoint 2022-04-24 23:57:17 +02:00
Agusti Fernandez Pardo df43d50a55 adds tzdata for timeZone validations 2022-04-24 23:56:53 +02:00
Agusti Fernandez Pardo 4c022d5d07 feat: adds full validations for users endpoint 2022-04-24 23:56:25 +02:00
Agusti Fernandez Pardo dad70d5a12 fix users, availabilites, attendees 2022-04-24 02:10:32 +02:00
Agusti Fernandez 260d25768f Merge pull request #56 from calcom/fix/attendees-id 2022-04-23 06:01:09 +02:00
Agusti Fernandez Pardo 096fd40044 fix: fixess attends:id endpoit 2022-04-23 05:51:26 +02:00
Agusti Fernandez Pardo 8c19303baf fix: verify expire 2022-04-23 05:37:36 +02:00
Agusti Fernandez 4e58e87264 Merge pull request #54 from calcom/fix-api-key-expire 2022-04-23 04:17:34 +02:00
Agusti Fernandez Pardo 11bf548241 fix: apiKeyExpire 2022-04-23 03:46:53 +02:00
Agusti Fernandez 0c21559399 Update README.md 2022-04-23 03:34:34 +02:00
Agusti Fernandez 70fd578a0f Merge pull request #53 from calcom/fix/51-delete-schedule-unset-default 2022-04-23 02:46:57 +02:00
Agusti Fernandez Pardo 9078ee2f3f fix: build removing extra spaces 2022-04-23 02:40:39 +02:00
Agusti Fernandez 60c25b1ee2 Merge pull request #47 from calcom/feat/api-ready-go 2022-04-23 02:32:53 +02:00
Agusti Fernandez Pardo 4e8fae7391 rename apiKey 2022-04-23 02:26:35 +02:00
Agusti Fernandez Pardo 2009e6f0fb fix: remove comments 2022-04-23 02:22:43 +02:00
Agusti Fernandez Pardo 8d5605dc7b fix: move 401 to throw early in all endpoints 2022-04-23 02:17:06 +02:00
Agusti Fernandez Pardo 307eddcbd5 fix: invert 401 to throw early in attendees 2022-04-23 02:06:39 +02:00
Agusti Fernandez Pardo 9cb2f9bc70 fix: clearer note about dropping metadata and locations in event-type 2022-04-23 02:06:16 +02:00
Agusti Fernandez Pardo 368e6eb0fa fix: rename dateInPast -> dateNotInPast 2022-04-23 02:05:56 +02:00
zomars 20cef3b4dd Uses inferred types 2022-04-22 08:05:31 -06:00
zomars be3bcf2bf0 Refactoring and fixes 2022-04-21 19:42:53 -06:00
Agusti Fernandez b382cb923f Merge pull request #50 from calcom/chore/remove-tests 2022-04-21 03:33:10 +02:00
Agusti Fernandez Pardo 14d63fc45c removes tests for now 2022-04-21 03:31:46 +02:00
alannnc 3c9f6f2db1 Update README.md 2022-04-20 18:34:27 -06:00
Agusti Fernandez 9239b27216 Merge branch 'main' into feat/api-ready-go 2022-04-21 02:28:53 +02:00
alannnc a2cdb04985 Update README.md 2022-04-20 18:19:48 -06:00
alannnc cb4f0a9cd0 Update README.md 2022-04-20 18:15:20 -06:00
alannnc cac972eb15 Update README.md 2022-04-20 18:14:23 -06:00
Agusti Fernandez dfefa65ecb Merge pull request #49 from calcom/fix/update-readme-2 2022-04-21 01:58:42 +02:00
Agusti Fernandez Pardo 8437a284a8 update readme round 2b 2022-04-21 01:57:32 +02:00
Agusti Fernandez Pardo c08f503807 update readme round 2 2022-04-21 01:55:44 +02:00
Agusti Fernandez b653276836 Merge pull request #48 from calcom/fix/update-readme 2022-04-21 01:47:05 +02:00
Agusti Fernandez Pardo b8d452bda0 feat: update readme 2022-04-21 01:46:15 +02:00
Agusti Fernandez Pardo 00bd2ed6e1 remove old tests for now, add new tests later 2022-04-21 01:31:36 +02:00
Agusti Fernandez Pardo ccd8637ae6 feat: all endpoints safe 2022-04-21 01:30:47 +02:00
Agusti Fernandez Pardo 103228cf84 feat: destination calendars ready 2022-04-21 01:15:58 +02:00
Agusti Fernandez Pardo d8bfff9525 feat: event type custom input endpoitns ready 2022-04-21 01:08:45 +02:00
Agusti Fernandez Pardo 18c1a2f026 remove unnecessary await on all getCalcomUserId() calls 2022-04-21 00:55:41 +02:00
Agusti Fernandez Pardo b0c0e9fb4c feat: memberships hardened mode 2022-04-21 00:55:22 +02:00
Agusti Fernandez Pardo 9c5624c748 fix: delete reminder mails endpoints for now as no userId, consult if needed 2022-04-21 00:50:34 +02:00
Agusti Fernandez Pardo cabe4ae9c6 feat: schedules hardend 2022-04-21 00:48:54 +02:00
Agusti Fernandez Pardo 80c2c4bdae feat: selected calendars hardened 2022-04-21 00:31:42 +02:00
Agusti Fernandez Pardo 6749840077 fix: improve comments on teams 2022-04-21 00:00:02 +02:00
Agusti Fernandez Pardo 910f222d62 fix: remove teams from endpoints that need hardening 2022-04-20 23:43:40 +02:00
Agusti Fernandez Pardo ec903b21c6 feat: teams return only userId related data, on POST create ownership membership for userId 2022-04-20 23:42:49 +02:00
Agusti Fernandez Pardo e138df47ba remove duplicated error check in event-types id 2022-04-20 20:25:26 +02:00
Agusti Fernandez Pardo 12dbb0ad03 feat: final securing of all endpoints, update readme 2022-04-20 16:06:37 +02:00
Agusti Fernandez Pardo 7734e86f6b improve readme. fix event-types 2022-04-19 13:44:24 +02:00
Agusti Fernandez Pardo 29666493d6 make event types return only userId data 2022-04-19 05:19:59 +02:00
Agusti Fernandez f9b7cebe37 Merge pull request #46 from calcom/fix/remove-creds 2022-04-18 23:41:54 +02:00
Agusti Fernandez Pardo b4f3b8cc55 removes credentials endpoint 2022-04-18 23:40:28 +02:00
Agusti Fernandez 5ce278953a Merge pull request #45 from calcom/feat/api-keys-auth 2022-04-18 23:36:43 +02:00
Agusti Fernandez Pardo 8965601e6f fix verifyapikey, add daabase_url to env.example 2022-04-18 23:24:57 +02:00
Agusti Fernandez Pardo 25a2a405da feat: adds apikeyAuth in swagger ui for all endpoints 2022-04-17 16:39:38 +02:00
Agusti Fernandez Pardo 5013ea2ef5 feat: adds apiKey auth as query params in docs and users endpoint 2022-04-17 16:18:42 +02:00
Agusti Fernandez b77dd34020 Merge pull request #44 from calcom/fix/rewrite-back-api 2022-04-15 19:10:37 +02:00
Agusti Fernandez Pardo 3ad84a7c15 fix back api to rewrite 2022-04-15 19:09:35 +02:00
Agusti Fernandez 892bce8193 Merge pull request #43 from calcom/fix/rewrite-headers 2022-04-15 19:00:41 +02:00
Agusti Fernandez Pardo 51cada224b fix rewrite headres 2022-04-15 18:55:47 +02:00
Agusti Fernandez 120c84b8e4 Merge pull request #42 from calcom/fix/cleanup-swagger 2022-04-15 18:35:18 +02:00
Agusti Fernandez Pardo 91eff191f6 remove next-cors 2022-04-15 18:13:21 +02:00
Agusti Fernandez Pardo 04052c53b4 cleanup no cors middleware 2022-04-15 18:12:25 +02:00
Agusti Fernandez 749f650b3d Merge pull request #41 from calcom/fix/next-config-add-no-cos 2022-04-15 17:36:26 +02:00
Agusti Fernandez Pardo 02855ef020 disable cors 2022-04-15 17:35:05 +02:00
Agusti Fernandez Pardo a543d1fde3 disable middleware for cors 2022-04-15 17:29:03 +02:00
Agusti Fernandez 4e61d89de6 Merge pull request #39 from calcom/fix/middleware 2022-04-15 17:05:30 +02:00
Agusti Fernandez Pardo a4851bd0b6 fix add new withCorsMiddleware 2022-04-15 17:04:17 +02:00
Agusti Fernandez b06af91152 Merge pull request #38 from calcom/fix/else 2022-04-15 16:57:00 +02:00
Agusti Fernandez Pardo ca8ca913a8 add else if to api key request 2022-04-15 16:55:55 +02:00
Agusti Fernandez e3f9c91a5c Merge pull request #37 from calcom/ignore-api-key-in-docs 2022-04-15 16:47:37 +02:00
Agusti Fernandez Pardo e251fccb61 make verifyApiKey not apply in docs 2022-04-15 16:47:08 +02:00
Agusti Fernandez Pardo 09d8b48ccc make verifyApiKey not apply in docs 2022-04-15 16:46:50 +02:00
Agusti Fernandez 86802090be Merge pull request #36 from calcom/fix/cors 2022-04-15 16:11:42 +02:00
Agusti Fernandez Pardo babfc6d7cf adds cors support to docs endpoint 2022-04-15 16:10:57 +02:00
Agusti Fernandez Pardo 187b97afa1 fix: update prefix to cal_ 2022-04-14 21:46:26 +02:00
Agusti Fernandez Pardo 1405f7a861 adds app-store to be transpiled to fix build 2022-04-13 18:53:44 +02:00
Agusti Fernandez a064983002 Merge pull request #35 from calcom/feat/hardened-safe-mode 2022-04-13 02:27:59 +02:00
Agusti Fernandez Pardo d987d52dbb feat: credentials, teams 2022-04-13 02:12:16 +02:00
Agusti Fernandez Pardo 9447bd859d feat hardened attendees, availabilites, booking-references, and bookings 2022-04-11 16:47:01 +02:00
Agusti Fernandez Pardo 9cefd119ee feat: make booking-references only return user booking related resources 2022-04-11 15:42:50 +02:00
Agusti Fernandez Pardo fca49a23c5 feat: make availabilities safe and return only userId related resources 2022-04-11 15:26:06 +02:00
Agusti Fernandez Pardo 081b511e1e Make attendees id endpoint return only user owned resources 2022-04-11 15:20:38 +02:00
Agusti Fernandez 75f5d881a5 Merge pull request #34 from calcom/feat/unify-endpoints-further 2022-04-11 15:12:11 +02:00
Agusti Fernandez Pardo 0bda988676 feat: all resources endpoints for get all and new unified 2022-04-11 15:10:16 +02:00
Agusti Fernandez Pardo 963c893727 feat: unify new/index of attendees, availabilities, booking references, bookings, selected calendars, update response types 2022-04-11 12:03:15 +02:00
Agusti Fernandez Pardo ddc1b4043c fix: docs bad ref in event type 2022-04-11 00:10:38 +02:00
Agusti Fernandez Pardo d95325c06c payments safe, unify endpoints for remindermails schedules 2022-04-10 02:10:34 +02:00
Agusti Fernandez Pardo af72b1f5b5 feat: unitfy new/index of teams and selected calendars 2022-04-09 01:29:26 +02:00
Agusti Fernandez fbc83a5cc9 Merge pull request #33 from calcom/fix/add-index 2022-04-08 23:21:58 +02:00
Agusti Fernandez Pardo 7fcc270fe8 adds index with message redirecting users to docs just so checkly doesn't fail 2022-04-08 23:20:52 +02:00
Agusti Fernandez 46fd17a120 Merge pull request #32 from calcom/fix/get-calcom-user 2022-04-08 21:08:56 +02:00
Agusti Fernandez Pardo 935e27f9ca Fix calcom user bad import 2022-04-08 21:08:25 +02:00
Agusti Fernandez d550de4be0 Merge pull request #31 from calcom/feat/unify-new-endpoint 2022-04-08 21:03:57 +02:00
Agusti Fernandez Pardo 1f561e70be reanem getCalcomUserId util 2022-04-08 20:54:48 +02:00
Agusti Fernandez Pardo 9edc1dbd29 some fixes on helpers/middlewares 2022-04-08 18:08:26 +02:00
Agusti Fernandez Pardo fc3677631f attendes of users bookings only 2022-04-08 03:16:53 +02:00
Agusti Fernandez Pardo 3d917e4dd4 make verifyApiKey check for hashed, need @calcom/ee in transpile modules next.config 2022-04-08 01:59:04 +02:00
Agusti Fernandez Pardo 325b19ba3f Add userId check in users getAll and id endpoints 2022-04-07 21:55:43 +02:00
Agusti Fernandez Pardo fc2978a61b feat: initial work unifying new endpoint and generating api key 2022-04-07 03:29:53 +02:00
Agusti Fernandez a1dcfa59bc Merge pull request #30 from calcom/fix-availabilities 2022-04-04 23:03:10 +02:00
Agusti Fernandez Pardo 15cdbb134f remove console statement 2022-04-04 22:29:45 +02:00
Agusti Fernandez Pardo 5b3f9ee95c fix availabilities spelling 2022-04-04 21:53:03 +02:00
Agusti Fernandez 23698462b8 Merge pull request #29 from calcom/fix/users-and-teams-id 2022-04-04 21:40:59 +02:00
Agusti Fernandez Pardo 89dfa2efe1 feat all endpoints one id file 2022-04-04 21:39:30 +02:00
Agusti Fernandez Pardo de8d7f64c3 mvoe to less files 2022-04-04 02:02:11 +02:00
Agusti Fernandez Pardo 5233dad5f9 re-unify into one route all id ops for teams and users 2022-04-04 00:49:05 +02:00
Agusti Fernandez b067bff3e2 Merge pull request #28 from calcom/feat/unify-id-routes 2022-04-04 00:46:13 +02:00
Agusti Fernandez Pardo a2b8b85de4 no commit in website 2022-04-03 19:50:53 +02:00
Agusti Fernandez Pardo 2172fd96c0 add back branch to clone passing -b before 2022-04-03 19:48:19 +02:00
Agusti Fernandez Pardo 5aacf7f836 no branch to clone, git diff dont ignore api, ignore website 2022-04-03 19:46:15 +02:00
Agusti Fernandez 8aba44dfbb Merge pull request #26 from calcom/fix/chmod-vercel-deploy 2022-04-03 19:41:49 +02:00
Agusti Fernandez Pardo 5956e705c9 fix chmod permissions on vercel deploy script 2022-04-03 19:41:23 +02:00
Agusti Fernandez 51850e325e Merge pull request #25 from calcom/deploy 2022-04-03 19:36:12 +02:00
Agusti Fernandez Pardo ebe8e52f1b small removal of no-react in readme 2022-04-03 19:34:49 +02:00
Agusti Fernandez 5fbefe7d50 Merge pull request #24 from calcom/fix/update-vercel-deploy 2022-04-03 19:26:07 +02:00
Agusti Fernandez Pardo 1bbce547fd add commit to if submodule api 2022-04-03 19:24:27 +02:00
Agusti Fernandez 1e6515a1c5 Merge pull request #23 from calcom/fix-add-empty-folder-for-deploy 2022-04-03 19:16:42 +02:00
Agusti Fernandez Pardo dacc27bae4 needed for deployment 2022-04-03 19:16:03 +02:00
Agusti Fernandez 64cb06ec86 Merge pull request #22 from calcom/fix/vercel 2022-04-03 19:13:23 +02:00
Agusti Fernandez Pardo ba5382cb32 add script to vercel deploy with private repos 2022-04-03 19:10:35 +02:00
Agusti Fernandez 11516e7720 Merge pull request #21 from calcom/fix/swagger-docs-indent 2022-04-03 19:04:55 +02:00
Agusti Fernandez Pardo 61819772bc fix all swagger docs, dont build templates 2022-04-03 17:47:18 +02:00
Agusti Fernandez 24b8bb5fe2 Merge pull request #18 from calcom/fix/update-validations-new-format 2022-04-02 03:52:27 +02:00
Agusti Fernandez Pardo d57e5920a7 chore: add tempaltes folder w endpoints and example validation for the future 2022-04-02 03:51:33 +02:00
Agusti Fernandez 0fef06d92d Merge pull request #17 from calcom/fix/update-validations-new-format 2022-04-02 03:48:25 +02:00
Agusti Fernandez Pardo e8b9ec7f8a fix: remove comment 2022-04-02 03:47:41 +02:00
Agusti Fernandez Pardo d144c0f9e1 feat: upgrade all validations, rename to use snake_case 2022-04-02 03:46:24 +02:00
Agusti Fernandez Pardo 837247f81b chore: add type-check gh actions like monorepo 2022-04-02 02:53:14 +02:00
Agusti Fernandez 902aacfb12 Merge pull request #16 from calcom/feat/add-payments-and-reminder-mails 2022-04-02 02:49:20 +02:00
Agusti Fernandez Pardo dd50624241 fix: remove unnecessary comment 2022-04-02 02:47:06 +02:00
Agusti Fernandez Pardo 1e18e9b945 feat: adds reminder-mail endpoints 2022-04-02 02:45:28 +02:00
Agusti Fernandez Pardo 3271e17317 feat: adds payments CRUD endpoints 2022-04-02 02:38:46 +02:00
Agusti Fernandez 3411768da2 Merge pull request #15 from calcom/docs/improve-swagger 2022-04-02 02:10:50 +02:00
Agusti Fernandez Pardo fc795f963b fix: hack around create/connect issues for now 2022-04-02 02:09:04 +02:00
Agusti Fernandez Pardo 9f4a62e2ef feat: yarn build no errors 2022-04-02 01:55:41 +02:00
Agusti Fernandez Pardo 1c19032884 chore: bring up to date booking references, bookings, and credentials 2022-04-01 23:03:03 +02:00
Agusti Fernandez Pardo 55f93cded6 feat: update attendees / availabilites / users endpoints and document parameters 2022-04-01 22:05:10 +02:00
Agusti Fernandez Pardo 2b4a745f12 feat: improve validations of users/attendee/availabilty to support required fields 2022-04-01 22:04:42 +02:00
Agusti Fernandez Pardo e284707250 initail work on paid booking, improve validations 2022-04-01 17:53:52 +02:00
Agusti Fernandez Pardo 12de89294d swagger docs add params, memberships handle compoundId 2022-03-31 22:14:37 +02:00
Agusti Fernandez e6cd238803 Merge pull request #14 from calcom/feat/inherit-validations-add-types 2022-03-30 18:37:13 +02:00
Agusti Fernandez Pardo 9aa4b0e30d feat: inherit all validations from auto-generated zod 2022-03-30 17:37:51 +02:00
Agusti Fernandez 064c39b7f6 Merge pull request #13 from calcom/feat/swagger-docs 2022-03-30 17:07:00 +02:00
Agusti Fernandez Pardo 367621ea51 feat: users, teams, selectedCalendars w new code/docs 2022-03-30 16:56:24 +02:00
Agusti Fernandez a2ef0c8c79 Merge pull request #12 from calcom/feat/more-validations 2022-03-30 15:17:34 +02:00
Agusti Fernandez Pardo 1de7bc4146 prettier 2022-03-30 14:17:55 +02:00
Agusti Fernandez 39ae2aed37 Merge pull request #11 from calcom/chores/ignore-yarn-error 2022-03-29 04:04:57 +02:00
Agusti Fernandez Pardo 443e01f0da chore: update imports to use dasheS 2022-03-29 04:01:23 +02:00
Agusti Fernandez Pardo 20a93a13c9 feat: update users/teams/apiKeys to use middleware 2022-03-29 03:59:57 +02:00
Agusti Fernandez Pardo 3011e0ecf7 chore: no default export 2022-03-29 03:23:22 +02:00
Agusti Fernandez Pardo 75e635cb37 chore: remove yarn-error from repo, add to .gitignore 2022-03-29 02:47:48 +02:00
Agusti Fernandez 411a3145d8 Merge pull request #10 from calcom/feat/api-middleware 2022-03-29 02:28:27 +02:00
Agusti Fernandez Pardo ec8fe36930 feat: successfully protected all endpoints with next-api-middleware for verifyApiKey 2022-03-29 02:25:24 +02:00
Agusti Fernandez 752a61c756 Merge pull request #9 from calcom/add-more-endpoints
Add more endpoints
2022-03-29 01:01:03 +02:00
Agusti Fernandez Pardo 8165977ec3 Adds basic CRUD endpoints for bookingReferences, Crendentials, DailyEventReferences, DestinationCalendars, EventTypeCustomInputs, Memberships, Schedules, and SelectedCalendars 2022-03-29 00:27:14 +02:00
Agusti Fernandez Pardo 99d328c35d chore: refactor-out apiKey check into middleware 2022-03-28 17:46:12 +02:00
Agusti Fernandez 5826e1744c Merge pull request #8 from calcom/feat/validate-add-availabilites-and-attendees
feat: adds availabilities and attendees endpoints
2022-03-28 16:21:57 +02:00
Agusti Fernandez Pardo 093d6888d2 remove unused req 2022-03-28 16:05:50 +02:00
Agusti Fernandez Pardo 1241ae6cfc feat: move findAll to return arrays 2022-03-28 16:05:00 +02:00
Agusti Fernandez Pardo 19934d8c3a Adds basic api-key auth in users, need to extract out 2022-03-28 02:51:40 +02:00
Agusti Fernandez Pardo 0e3131d866 feat: improve validations 2022-03-27 15:15:46 +02:00
Agusti Fernandez Pardo c561b16f85 chore: rename empty validations, enable relations on user zod object 2022-03-27 01:19:49 +01:00
Agusti Fernandez Pardo 396c5b8d8c chore: refactor all delete endpoints to use if/else instead of .catch() and .error() 2022-03-27 01:08:00 +01:00
Agusti Fernandez Pardo 936572e7e1 feat: adds availabilitesi and attendees endpoints, some cleanup less try/catch more if/else 2022-03-27 00:58:22 +01:00
Agusti Fernandez 8fbd8ccd63 Merge pull request #7 from calcom/chore/tests-new-and-find-all
feat: adds bookings and more tests
2022-03-26 23:09:00 +01:00
Agusti Fernandez Pardo ac307f7161 feat: adds bookings and more tests 2022-03-26 22:29:30 +01:00
Agusti Fernandez c0d7623beb Merge pull request #6 from calcom/chore/more-testing
feat: 50% almost code coverage
2022-03-26 05:30:25 +01:00
Agusti Fernandez Pardo 7998e8fc2c feat: 50% almost code coverage 2022-03-26 05:28:53 +01:00
Agusti Fernandez 9233f143c6 Merge pull request #5 from calcom/feat/users-teams
Feature: adds users and teams tests
2022-03-26 02:24:02 +01:00
Agusti Fernandez Pardo 022ba7b8de fixes tests by passing stringifyISODates to createdDate and emailVerified 2022-03-26 02:22:28 +01:00
Agusti Fernandez Pardo 62a917c7a8 renames team -> teams adds tests for users and teams 2022-03-26 02:16:46 +01:00
Agusti Fernandez 557342104b Merge pull request #4 from calcom/feat/teams
feat: Adds teams endpoints and zod validations
2022-03-26 01:55:07 +01:00
Agusti Fernandez Pardo 8b8629f37a feat: Adds teams endpoints and zod validations 2022-03-26 01:53:56 +01:00
Agusti Fernandez 2a1ed8dd79 Merge pull request #3 from calcom/feat/test-api-keys
Tests: add testing for api keys endpoints
2022-03-26 01:42:43 +01:00
Agusti Fernandez Pardo f2be36f89c fix: remove console statements 2022-03-26 01:41:22 +01:00
Agusti Fernandez Pardo 12a7129e5a feat: adds tests for api keys endpoints 2022-03-26 01:40:43 +01:00
Agusti Fernandez Pardo 9e8be659c5 feat: initial tests for api-keys endpoint 2022-03-26 00:42:12 +01:00
Agusti Fernandez f80f23d3c3 Merge pull request #2 from calcom/feat/with-transpile-modules
feat: adds module transpiling so api can require @calcom/prisma
2022-03-25 23:28:02 +01:00
Agusti Fernandez Pardo 084c91f6c1 feat: improve api key endpoints, add users endpoint 2022-03-25 23:26:22 +01:00
Agusti Fernandez Pardo d9c34f67e6 feat: adds api keys endpoints, new QueryIdAsString as apiKey has a UUID string-like ID unlike the numbers of event-type or others 2022-03-25 20:17:37 +01:00
Agusti Fernandez Pardo c2234593db feat: adds module transpiling so api can require @calcom/prisma and not @prisma/client directly 2022-03-25 19:37:51 +01:00
Agusti Fernandez Pardo a2817a2fee Feat: event-types and tests 2022-03-25 06:54:57 +01:00
Agusti Fernandez Pardo 2e2f6a5e57 feat: adds git hooks and husky for pre-commit linting 2022-03-25 02:18:43 +01:00
Agusti Fernandez Pardo a71039328f feat: 100% code-coverage, add coverage to gitignore 2022-03-25 02:07:51 +01:00
Agusti Fernandez Pardo f6371c3b75 adds message and full error in eventtype/new 2022-03-25 01:52:13 +01:00
Agusti Fernandez Pardo f4d889e87b add @lib and @api paths for cleaner imports 2022-03-25 00:43:35 +01:00
Agusti Fernandez Pardo 737a8897ba extracting out schemaQuery validation to lib, extracting out delete/edit to it's own files for clarity 2022-03-25 00:04:07 +01:00
Agusti Fernandez Pardo e4d9f7bc7d remove example validation file 2022-03-24 23:19:13 +01:00
Agusti Fernandez Pardo 84ab74b46a feat: tests all codepaths of event-type/[id] 2022-03-24 23:16:48 +01:00
Agusti Fernandez Pardo dfa227f1b6 adds testing for validations 2022-03-24 23:10:24 +01:00
Agusti Fernandez Pardo 713f53acc4 feat: add next-validations and zod validations 2022-03-24 21:25:35 +01:00
Agusti Fernandez Pardo c5b12d46af chore: rename return types to Data, import prisma from @calcom/prisma 2022-03-24 19:01:37 +01:00
Agusti Fernandez Pardo b753466bda moving to nextjs/api 2022-03-24 17:02:33 +01:00
Agusti Fernandez Pardo 60d2b81c29 feat: Initial work on event-types, add jest for testing w node-http-mocks 2022-03-23 22:35:38 +01:00
Agusti Fernandez Pardo 9a8e63b729 resolve conflict w main 2022-03-23 22:32:46 +01:00
Agusti Fernandez Pardo 3856d0768c remove unneede env 2022-03-23 22:30:47 +01:00
Agusti Fernandez Pardo b6dca78d64 remove unneeded jest config and deps 2022-03-23 22:29:00 +01:00
Agusti Fernandez Pardo c46a899c1b remove all next-auth related stuff 2022-03-23 22:27:03 +01:00
Agusti Fernandez Pardo 9a5c3f96ec rebase fixing conflicts 2022-03-23 22:22:57 +01:00
Agusti Fernandez 11e1312e3a feat: inital commit 2022-03-18 14:42:42 +01:00
1307 changed files with 35920 additions and 15880 deletions
-6
View File
@@ -106,12 +106,6 @@ LARK_OPEN_APP_ID=""
LARK_OPEN_APP_SECRET=""
LARK_OPEN_VERIFICATION_TOKEN=""
# - WEB3
# Used for the Web3 plugin
# @see https://github.com/calcom/cal.com/blob/main/packages/app-store/rainbow/README.md
ALCHEMY_API_KEY=""
INFURA_API_KEY=""
# - SALESFORCE
# Used for the Salesforce (Sales Cloud) app
SALESFORCE_CONSUMER_KEY=""
+28
View File
@@ -5,6 +5,7 @@
# - SHARED
# - NEXTAUTH
# - E-MAIL SETTINGS
# - ORGANIZATIONS
# - LICENSE (DEPRECATED) ************************************************************************************
# https://github.com/calcom/cal.com/blob/main/LICENSE
@@ -22,6 +23,8 @@ CALCOM_LICENSE_KEY=
# - DATABASE ************************************************************************************************
DATABASE_URL="postgresql://postgres:@localhost:5450/calendso"
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
# Uncomment to enable a dedicated connection pool for Prisma using Prisma Data Proxy
# Cold boots will be faster and you'll be able to scale your DB independently of your app.
@@ -32,6 +35,8 @@ PRISMA_GENERATE_DATAPROXY=
# ***********************************************************************************************************
# - SHARED **************************************************************************************************
# Set this to http://app.cal.local:3000 if you want to enable organizations, and
# check variable ORGANIZATIONS_ENABLED at the bottom of this file
NEXT_PUBLIC_WEBAPP_URL='http://localhost:3000'
# Change to 'http://localhost:3001' if running the website simultaneously
NEXT_PUBLIC_WEBSITE_URL='http://localhost:3000'
@@ -183,3 +188,26 @@ CSP_POLICY=
EDGE_CONFIG=
NEXT_PUBLIC_MINUTES_TO_BOOK=5 # Minutes
# - ORGANIZATIONS *******************************************************************************************
# Enable Organizations non-prod domain setup, works in combination with organizations feature flag
# This is mainly needed locally, because for orgs to work a full domain name needs to point
# to the app, i.e. app.cal.local instead of using localhost, which is very disruptive
#
# This variable should only be set to 1 or true if you are in a non-prod environment and you want to
# use organizations
ORGANIZATIONS_ENABLED=
# Vercel Config to create subdomains for organizations
# Get it from https://vercel.com/<TEAM_OR_USER_NAME>/<PROJECT_SLUG>/settings
PROJECT_ID_VERCEL=
# Get it from: https://vercel.com/teams/<TEAM_SLUG>/settings
TEAM_ID_VERCEL=
# Get it from: https://vercel.com/account/tokens
AUTH_BEARER_TOKEN_VERCEL=
#Enables New booker for Embed only
NEW_BOOKER_ENABLED_FOR_EMBED=0
#Enables New booker for All but Embed requests
NEW_BOOKER_ENABLED_FOR_NON_EMBED=0
-34
View File
@@ -1,34 +0,0 @@
# This is a comment.
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
# ⬇️ Removed so we can manually trigger checks
# * @calcom/reviewers
.github/ @calcom/core
.husky/ @calcom/core
.vcode/ @calcom/core
.snaplet/ @calcom/core
deploy/ @calcom/core
scripts/ @calcom/core
apps/docs @calcom/docs
apps/swagger @calcom/docs
packages/app-store-cli @hariombalhara @calcom/core
packages/dayjs @zomars @calcom/core
packages/emails @zomars @calcom/core
packages/embeds @hariombalhara @calcom/core
packages/eslint-plugin @zomars @calcom/core
packages/features @zomars @calcom/core
packages/features/kbar @alishaz-polymath @calcom/core
packages/features/ee/impersonation @sean-brydon @calcom/core
packages/features/ee/payments @alannnc @calcom/core
packages/features/ee/workflows @CarinaWolli @calcom/core
packages/features/tips @PeerRich @calcom/core
packages/ui @calcom/ui
packages/config @calcom/core
packages/app-store/routing-forms @hariombalhara @calcom/core
+3 -4
View File
@@ -8,8 +8,6 @@ Fixes # (issue)
Loom Video: https://www.loom.com/
-->
**Environment**: Staging(main branch) / Production
## Type of change
<!-- Please delete bullets that are not relevant. -->
@@ -27,13 +25,14 @@ Fixes # (issue)
- [ ] Test A
- [ ] Test B
## Mandatory Tasks
- [ ] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.
## Checklist
<!-- Please remove all the irrelevant bullets to your PR -->
- 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 performed a self-review of my own code and corrected any misspellings
- I haven't commented my code, particularly in hard-to-understand areas
- I haven't checked if my PR needs changes to the documentation
- I haven't checked if my changes generate no new warnings
+1 -1
View File
@@ -8,7 +8,7 @@ runs:
using: "composite"
steps:
- name: Cache production build
uses: actions/cache@v3
uses: buildjet/cache@v3
id: cache-build
env:
cache-name: prod-build
+1 -1
View File
@@ -12,7 +12,7 @@ runs:
steps:
- name: Cache database
id: cache-db
uses: actions/cache@v3
uses: buildjet/cache@v3
env:
cache-name: cache-db
key-1: ${{ hashFiles('packages/prisma/schema.prisma', 'packages/prisma/migrations/**/**.sql', 'packages/prisma/*.ts') }}
+2 -2
View File
@@ -4,7 +4,7 @@ runs:
using: "composite"
steps:
- name: Create env file
uses: actions/cache@v3
uses: buildjet/cache@v3
id: env-cache
with:
path: gh.env
@@ -13,4 +13,4 @@ runs:
- name: Set Environment Variables
uses: tw3lveparsecs/github-actions-setvars@latest
with:
envFilePath: gh.env
envFilePath: gh.env
+12 -3
View File
@@ -20,7 +20,7 @@ runs:
using: "composite"
steps:
- name: Use Node ${{ inputs.node_version }}
uses: actions/setup-node@v3
uses: buildjet/setup-node@v3
with:
node-version: ${{ inputs.node_version }}
- name: Expose yarn config as "$GITHUB_OUTPUT"
@@ -32,7 +32,7 @@ runs:
# Yarn rotates the downloaded cache archives, @see https://github.com/actions/setup-node/issues/325
# Yarn cache is also reusable between arch and os.
- name: Restore yarn cache
uses: actions/cache@v3
uses: buildjet/cache@v3
id: yarn-download-cache
with:
path: ${{ steps.yarn-config.outputs.CACHE_FOLDER }}
@@ -40,10 +40,18 @@ runs:
restore-keys: |
yarn-download-cache-
# Invalidated on yarn.lock changes
- name: Restore node_modules
id: yarn-nm-cache
uses: buildjet/cache@v3
with:
path: "**/node_modules/"
key: ${{ runner.os }}-yarn-nm-cache-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
# Invalidated on yarn.lock changes
- name: Restore yarn install state
id: yarn-install-state-cache
uses: actions/cache@v3
uses: buildjet/cache@v3
with:
path: .yarn/ci-cache/
key: ${{ runner.os }}-yarn-install-state-cache-${{ hashFiles('yarn.lock', '.yarnrc.yml') }}
@@ -58,5 +66,6 @@ runs:
YARN_ENABLE_IMMUTABLE_INSTALLS: "false" # So it doesn't try to remove our private submodule deps
YARN_ENABLE_GLOBAL_CACHE: "false" # Use local cache folder to keep downloaded archives
YARN_INSTALL_STATE_PATH: .yarn/ci-cache/install-state.gz # Very small speedup when lock does not change
YARN_NM_MODE: "hardlinks-local" # Reduce node_modules size
# Other environment variables
HUSKY: "0" # By default do not run HUSKY install
@@ -5,7 +5,7 @@ runs:
steps:
- name: Cache playwright binaries
id: playwright-cache
uses: actions/cache@v2
uses: buildjet/cache@v2
with:
path: |
~/Library/Caches/ms-playwright
@@ -0,0 +1,16 @@
name: Add PRs to project Reviewing PRs
on:
pull_request:
types:
- opened
jobs:
add-PR-to-project:
name: Add PRs to project Reviewing PRs
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.1.0
with:
project-url: https://github.com/orgs/calcom/projects/11
github-token: ${{ secrets.GH_ACCESS_TOKEN }}
+64 -16
View File
@@ -1,27 +1,75 @@
name: "Apply issue labels to PR"
on:
pull_request:
types: [opened]
pull_request_target:
types:
- opened
jobs:
label_on_pr:
runs-on: ubuntu-latest
permissions:
contents: none
issues: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 16
- name: Apply labels from linked issue to PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_DATA: ${{ toJson(github.event.pull_request) }}
run: node ./.github/workflows/scripts/apply-issue-labels-to-pr.ts
uses: actions/github-script@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
async function getLinkedIssues(owner, repo, prNumber) {
const query = `query GetLinkedIssues($owner: String!, $repo: String!, $prNumber: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $prNumber) {
closingIssuesReferences(first: 10) {
nodes {
number
labels(first: 10) {
nodes {
name
}
}
}
}
}
}
}`;
const variables = {
owner: owner,
repo: repo,
prNumber: prNumber,
};
const result = await github.graphql(query, variables);
return result.repository.pullRequest.closingIssuesReferences.nodes;
}
const pr = context.payload.pull_request;
const linkedIssues = await getLinkedIssues(
context.repo.owner,
context.repo.repo,
pr.number
);
const labelsToAdd = new Set();
for (const issue of linkedIssues) {
if (issue.labels && issue.labels.nodes) {
for (const label of issue.labels.nodes) {
labelsToAdd.add(label.name);
}
}
}
if (labelsToAdd.size) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
labels: Array.from(labelsToAdd),
});
}
+1 -1
View File
@@ -6,7 +6,7 @@ on:
jobs:
cleanup:
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: Check out code
uses: actions/checkout@v3
+1 -1
View File
@@ -5,7 +5,7 @@ env:
NODE_OPTIONS: "--max-old-space-size=8192"
jobs:
check-types:
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
+1 -1
View File
@@ -6,7 +6,7 @@ jobs:
e2e-app-store:
timeout-minutes: 20
name: E2E App-Store Apps
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
services:
postgres:
image: postgres:12.1
+4 -2
View File
@@ -5,7 +5,7 @@ on:
jobs:
e2e-embed:
timeout-minutes: 20
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
services:
postgres:
image: postgres:12.1
@@ -25,7 +25,9 @@ jobs:
- uses: ./.github/actions/cache-db
- uses: ./.github/actions/cache-build
- name: Run Tests
run: yarn test-e2e:embed-react
run: |
yarn test-e2e:embed-react
yarn workspace @calcom/embed-react packaged:tests
env:
DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }}
- name: Upload Test Results
+1 -1
View File
@@ -5,7 +5,7 @@ on:
jobs:
e2e-embed:
timeout-minutes: 20
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
services:
postgres:
image: postgres:12.1
+8 -4
View File
@@ -4,8 +4,8 @@ on:
jobs:
e2e:
timeout-minutes: 20
name: E2E tests
runs-on: ubuntu-latest
name: E2E tests (${{ matrix.shard }}/${{ strategy.job-total }})
runs-on: buildjet-4vcpu-ubuntu-2204
services:
postgres:
image: postgres:12.1
@@ -14,6 +14,10 @@ jobs:
POSTGRES_DB: calendso
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
@@ -24,12 +28,12 @@ jobs:
- uses: ./.github/actions/cache-db
- uses: ./.github/actions/cache-build
- name: Run Tests
run: yarn test-e2e
run: yarn e2e --shard=${{ matrix.shard }}/${{ strategy.job-total }}
env:
DEPLOYSENTINEL_API_KEY: ${{ secrets.DEPLOYSENTINEL_API_KEY }}
- name: Upload Test Results
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: test-results
name: test-results-${{ matrix.shard }}_${{ strategy.job-total }}
path: test-results
+3 -3
View File
@@ -20,7 +20,7 @@ env:
INPUT_ENV_PAYMENT_FEE_FIXED: 10
INPUT_ENV_SAML_DATABASE_URL: postgresql://postgres:@localhost:5432/calendso
INPUT_ENV_SAML_ADMINS: pro@example.com
INPUT_ENV_NEXTAUTH_URL: http://127.0.0.1:3000/api/auth
INPUT_ENV_NEXTAUTH_URL: http://localhost:3000
INPUT_ENV_NEXT_PUBLIC_IS_E2E: 1
# INPUT_ENV_EMAIL_FROM: e2e@cal.com
# INPUT_ENV_EMAIL_SERVER_HOST: ${{ secrets.CI_EMAIL_SERVER_HOST }}
@@ -36,14 +36,14 @@ env:
jobs:
create_env_file:
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
- uses: ozaytsev86/create-env-file@v1
with:
file-name: ${{ github.workspace }}/gh.env
- uses: actions/cache@v3
- uses: buildjet/cache@v3
id: env-cache
with:
path: gh.env
+2 -2
View File
@@ -3,13 +3,13 @@ on:
workflow_call:
jobs:
lint:
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
- uses: ./.github/actions/yarn-install
- name: Save Code Linting Reports
- name: Run Linting with Reports
run: yarn lint:report
continue-on-error: true
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
analyze:
needs: build
if: always()
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
+9 -2
View File
@@ -16,7 +16,8 @@ concurrency:
jobs:
changes:
runs-on: ubuntu-latest
name: Detect changes
runs-on: buildjet-4vcpu-ubuntu-2204
permissions:
pull-requests: read
outputs:
@@ -66,6 +67,12 @@ jobs:
uses: ./.github/workflows/production-build.yml
secrets: inherit
build-without-database:
name: Production build (without database)
needs: env
uses: ./.github/workflows/production-build-without-database.yml
secrets: inherit
e2e:
name: E2E tests
needs: [changes, lint, build]
@@ -101,7 +108,7 @@ jobs:
required:
needs: [lint, type-check, test, build, e2e]
if: always()
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: fail if conditional jobs failed
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'skipped') || contains(needs.*.result, 'cancelled')
@@ -0,0 +1,16 @@
name: Production Build (without database)
on:
workflow_call:
jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
- uses: ./.github/actions/yarn-install
- uses: ./.github/actions/env-read-file
- uses: ./.github/actions/cache-build
+1 -1
View File
@@ -6,7 +6,7 @@ on:
jobs:
build:
name: Build
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
timeout-minutes: 30
services:
postgres:
@@ -1,139 +0,0 @@
const https = require("https");
async function applyLabelFromLinkedIssueToPR(pr, token) {
// Get the labels from issues linked to the PR
const query = `
query GetLinkedIssues($owner: String!, $repo: String!, $prNumber: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $prNumber) {
closingIssuesReferences(first: 10) {
nodes {
number
labels(first: 10) {
nodes {
name
}
}
}
}
}
}
}
`;
const graphqlData = JSON.stringify({
query,
variables: {
owner: pr.base.repo.owner.login,
repo: pr.base.repo.name,
prNumber: pr.number,
},
});
const requestOptions = {
hostname: "api.github.com",
path: "/graphql",
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": graphqlData.length,
Authorization: "Bearer " + token,
"User-Agent": "Node.js",
},
};
// Use the native Node.js request library to make the request
let linkedIssues;
linkedIssues = await new Promise((resolve, reject) => {
const request = https.request(requestOptions, (response) => {
let responseBody = "";
response.on("data", (chunk) => {
responseBody += chunk;
});
response.on("end", () => {
resolve(JSON.parse(responseBody)?.data?.repository?.pullRequest?.closingIssuesReferences?.nodes);
});
});
request.on("error", (error) => {
reject(error);
});
request.write(graphqlData);
request.end();
});
if (!linkedIssues || linkedIssues.length === 0) {
console.log("No issue linked.");
return;
}
// Iterate over linked issues and apply labels to PR
for (const issue of linkedIssues) {
const labels = issue?.labels?.nodes?.map((label) => label.name);
if (!labels || labels.length === 0) {
console.log(`No labels found on the linked issue #${issue.number}.`);
continue;
}
const labelsData = JSON.stringify({
labels: labels,
});
const requestOptions = {
hostname: "api.github.com",
path: `/repos/${pr.base.repo.owner.login}/${pr.base.repo.name}/issues/${pr.number}/labels`,
method: "POST",
headers: {
"Content-Type": "application/json",
"Content-Length": labelsData.length,
Authorization: "Bearer " + token,
"User-Agent": "Node.js",
},
};
let labelResult;
labelResult = await new Promise((resolve, reject) => {
const request = https.request(requestOptions, (response) => {
let responseBody = "";
response.on("data", (chunk) => {
responseBody += chunk;
});
response.on("data", () => {});
response.on("end", () => {
resolve(JSON.parse(responseBody));
});
});
request.on("error", (error) => {
reject(error);
});
request.write(labelsData);
request.end();
});
if (labelResult.message) {
console.log(`Error labelling PR: ${labelResult.message}`);
continue;
}
console.log(
`Applied labels: ${labels.join(", ")} to PR #${pr.number} from linked issue #${issue.number}`
);
}
}
// Pass the PR data and GitHub token to the script
(async () => {
if (!process.env.PR_DATA) {
console.log("No PR data found.");
return;
}
const prData = JSON.parse(process.env.PR_DATA);
const token = process.env.GITHUB_TOKEN;
await applyLabelFromLinkedIssueToPR(prData, token);
})();
@@ -0,0 +1,21 @@
name: "Validate PRs"
on:
pull_request_target:
types:
- opened
- reopened
- edited
- synchronize
permissions:
pull-requests: read
jobs:
validate-pr:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -7,7 +7,7 @@ on:
jobs:
test:
timeout-minutes: 20
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/dangerous-git-checkout
-28
View File
@@ -1,28 +0,0 @@
name: TODO to Issue
on:
push:
branches:
- main
workflow_dispatch:
inputs:
MANUAL_COMMIT_REF:
description: "The SHA of the commit to get the diff for"
required: true
MANUAL_BASE_REF:
description: "By default, the commit entered above is compared to the one directly before it; to go back further, enter an earlier SHA here"
required: false
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
todos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: "Add TODOs to issues"
uses: "alstr/todo-to-issue-action@v4"
env:
MANUAL_COMMIT_REF: ${{ inputs.MANUAL_COMMIT_REF }}
MANUAL_BASE_REF: ${{ inputs.MANUAL_BASE_REF }}
with:
IDENTIFIERS: '[{"name": "TODO", "labels": ["🙋🏻‍♂️help wanted"]}, {"name": "FIXME", "labels": ["🐛 bug"]}]'
+1 -1
View File
@@ -6,7 +6,7 @@ on:
jobs:
setup:
name: Yarn install & cache
runs-on: ubuntu-latest
runs-on: buildjet-4vcpu-ubuntu-2204
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
-1
View File
@@ -84,7 +84,6 @@ apps/storybook/build-storybook.log
# Submodules
.gitmodules
apps/api
apps/website
apps/console
apps/auth
-8
View File
@@ -1,8 +0,0 @@
{
"workspaceId": "63ea8121b6e2b0543ba79616",
"defaultEnvironment": "dev",
"gitBranchToEnvironmentMapping": {
"main": "staging",
"production": "prod"
}
}
+1
View File
@@ -7,6 +7,7 @@ public
*.lock
*.log
*.test.ts
.gitignore
.npmignore
+6 -1
View File
@@ -86,7 +86,12 @@ To develop locally:
yarn
```
5. Start developing and watch for code changes:
5. Set up your `.env` file:
- Use `openssl rand -base64 32` to generate a key and add it under `NEXTAUTH_SECRET` in the `.env` file.
- Use `openssl rand -base64 24` to generate a key and add it under `CALENDSO_ENCRYPTION_KEY` in the `.env` file.
6. Start developing and watch for code changes:
```sh
yarn dev
+1 -1
View File
@@ -2,7 +2,7 @@ Copyright (c) 2020-present Cal.com, Inc.
Portions of this software are licensed as follows:
* All content that resides under https://github.com/calcom/cal.com/tree/main/packages/features/ee directory of this repository (Enterprise Edition) is licensed under the license defined in "ee/LICENSE".
* All content that resides under https://github.com/calcom/cal.com/tree/main/packages/features/ee directory of this repository (Commercial License) is licensed under the license defined in "ee/LICENSE".
* All third party components incorporated into the Cal.com Software are licensed under the original license provided by the owner of the applicable component.
* Content outside of the above mentioned directories or restrictions above is available under the "AGPLv3" license as defined below.
+10 -2
View File
@@ -106,7 +106,7 @@ To get a local copy up and running, please follow these simple steps.
Here is what you need to be able to run Cal.com.
- Node.js (Version: >=15.x <17)
- Node.js (Version: >=18.x)
- PostgreSQL
- Yarn _(recommended)_
@@ -201,6 +201,14 @@ echo 'NEXT_PUBLIC_DEBUG=1' >> .env
1. Set a 32 character random string in your `.env` file for the `CALENDSO_ENCRYPTION_KEY` (You can use a command like `openssl rand -base64 24` to generate one).
1. Set up the database using the Prisma schema (found in `packages/prisma/schema.prisma`)
In a development environment, run:
```sh
yarn workspace @calcom/prisma db-migrate
```
In a production environment, run:
```sh
yarn workspace @calcom/prisma db-deploy
```
@@ -416,7 +424,7 @@ Make sure to complete section "Obtaining the Google API Credentials". After the
following
1. Add extra redirect URL `<Cal.com URL>/api/auth/callback/google`
1. Under 'OAuth concent screen', click "PUBLISH APP"
1. Under 'OAuth consent screen', click "PUBLISH APP"
### Obtaining Microsoft Graph Client ID and Secret
+6
View File
@@ -0,0 +1,6 @@
API_KEY_PREFIX=cal_
DATABASE_URL="postgresql://postgres:@localhost:5450/calendso"
NEXT_PUBLIC_WEBAPP_URL=http://localhost:3000
# Get it in console.cal.com
CALCOM_LICENSE_KEY=""
+81
View File
@@ -0,0 +1,81 @@
# .env file
.env
# dependencies
node_modules
.pnp
.pnp.js
# testing
coverage
/test-results/
playwright/videos
playwright/screenshots
playwright/artifacts
playwright/results
playwright/reports/*
# next.js
.next/
out/
build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
.env.*
!.env.example
# vercel
.vercel
# Webstorm
.idea
### VisualStudioCode template
.vscode/
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
# Typescript
tsconfig.tsbuildinfo
# turbo
.turbo
# Prisma-Zod
packages/prisma/zod/*.ts
# Builds
dist
# Linting
lint-results
# Yarn
yarn-error.log
.turbo
.next
.husky
.vscode
.env
+5
View File
@@ -0,0 +1,5 @@
.next/
coverage/
node_modules/
tests/
templates/
+225
View File
@@ -0,0 +1,225 @@
<!-- PROJECT LOGO -->
<div align="center">
<a href="https://cal.com/docs/enterprise-features/api#api-server-specifications">
<img src="https://user-images.githubusercontent.com/8019099/133430653-24422d2a-3c8d-4052-9ad6-0580597151ee.png" alt="Logo">
</a>
<a href="https://cal.com/docs/enterprise-features/api#api-server-specifications">Read the API docs</a>
</div>
# Cal.com Public API
Welcome to the Public API ("/apps/api") of the Cal.com.
This is the public REST api for cal.com.
It exposes CRUD Endpoints of all our most important resources.
And it makes it easy for anyone to integrate with Cal.com at the application programming level.
## Stack
- NextJS
- TypeScript
- Prisma
## Development
### Setup
1. Clone the main repo (NOT THIS ONE)
```sh
git clone --recurse-submodules -j8 https://github.com/calcom/cal.com.git
```
1. Go to the project folder
```sh
cd cal.com
```
1. Copy `apps/api/.env.example` to `apps/api/.env`
```sh
cp apps/api/.env.example apps/api/.env
cp .env.example .env
```
1. Install packages with yarn
```sh
yarn
```
1. Start developing
```sh
yarn workspace @calcom/api dev
```
1. Open [http://localhost:3002](http://localhost:3002) with your browser to see the result.
## API Authentication (API Keys)
The API requires a valid apiKey query param to be passed:
You can generate them at <https://app.cal.com/settings/security>
For example:
```sh
GET https://api.cal.com/v1/users?apiKey={INSERT_YOUR_CAL.COM_API_KEY_HERE}
```
API Keys optionally may have expiry dates, if they are expired they won't work. If you create an apiKey without a userId relation, it won't work either for now as it relies on it to establish the current authenticated user.
In the future we might add support for header Bearer Auth if we need to or if our customers require it.
## Middlewares
We don't use the new NextJS 12 Beta Middlewares, mainly because they run on the edge, and are not able to call prisma from api endpoints. We use instead a very nifty library called next-api-middleware that let's us use a similar approach building our own middlewares and applying them as we see fit.
- withMiddleware() requires some default middlewares (verifyApiKey, etc...)
## Next.config.js
### Redirects
Since this is an API only project, we don't want to have to type /api/ in all the routes, and so redirect all traffic to api, so a call to `api.cal.com/v1` will resolve to `api.cal.com/api/v1`
Likewise, v1 is added as param query called version to final /api call so we don't duplicate endpoints in the future for versioning if needed.
### Transpiling locally shared monorepo modules
We're calling several packages from monorepo, this need to be transpiled before building since are not available as regular npm packages. That's what withTM does.
```js
"@calcom/app-store",
"@calcom/prisma",
"@calcom/lib",
"@calcom/features",
```
## API Endpoint Validation
We validate that only the supported methods are accepted at each endpoint, so in
- **/endpoint**: you can only [GET] (all) and [POST] (create new)
- **/endpoint/id**: you can read create and edit [GET, PATCH, DELETE]
### Zod Validations
The API uses `zod` library like our main web repo. It validates that either GET query parameters or POST body content's are valid and up to our spec. It gives errors when parsing result's with schemas and failing validation.
We use it in several ways, but mainly, we first import the auto-generated schema from @calcom/prisma for each model, which lives in `lib/validations/`
We have some shared validations which several resources require, like baseApiParams which parses apiKey in all requests, or querIdAsString or TransformParseInt which deal with the id's coming from req.query.
- **[*]BaseBodyParams** that omits any values from the model that are too sensitive or we don't want to pick when creating a new resource like id, userId, etc.. (those are gotten from context or elswhere)
- **[*]Public** that also omits any values that we don't want to expose when returning the model as a response, which we parse against before returning all resources.
- **[*]BodyParams** which merges both `[*]BaseBodyParams.merge([*]RequiredParams);`
### Next Validations
[Next-Validations Docs](https://next-validations.productsway.com/)
[Next-Validations Repo](https://github.com/jellydn/next-validations)
We also use this useful helper library that let us wrap our endpoints in a validate HOC that checks the req against our validation schema built out with zod for either query and / or body's requests.
## Testing with Jest + node-mocks-http
We aim to provide a fully tested API for our peace of mind, this is accomplished by using jest + node-mocks-http
## Endpoints matrix
| resource | get [id] | get all | create | edit | delete |
| --------------------- | -------- | ------- | ------ | ---- | ------ |
| attendees | ✅ | ✅ | ✅ | ✅ | ✅ |
| availabilities | ✅ | ✅ | ✅ | ✅ | ✅ |
| booking-references | ✅ | ✅ | ✅ | ✅ | ✅ |
| event-references | ✅ | ✅ | ✅ | ✅ | ✅ |
| destination-calendars | ✅ | ✅ | ✅ | ✅ | ✅ |
| custom-inputs | ✅ | ✅ | ✅ | ✅ | ✅ |
| event-types | ✅ | ✅ | ✅ | ✅ | ✅ |
| memberships | ✅ | ✅ | ✅ | ✅ | ✅ |
| payments | ✅ | ✅ | ❌ | ❌ | ❌ |
| schedules | ✅ | ✅ | ✅ | ✅ | ✅ |
| selected-calendars | ✅ | ✅ | ✅ | ✅ | ✅ |
| teams | ✅ | ✅ | ✅ | ✅ | ✅ |
| users | ✅ | 👤[1] | ✅ | ✅ | ✅ |
## Models from database that are not exposed
mostly because they're deemed too sensitive can be revisited if needed. Also they are expected to be used via cal's webapp.
- [ ] Api Keys
- [ ] Credentials
- [ ] Webhooks
- [ ] ResetPasswordRequest
- [ ] VerificationToken
- [ ] ReminderMail
## Documentation (OpenAPI)
You will see that each endpoint has a comment at the top with the annotation `@swagger` with the documentation of the endpoint, **please update it if you change the code!** This is what auto-generates the OpenAPI spec by collecting the YAML in each endpoint and parsing it in /docs alongside the json-schema (auto-generated from prisma package, not added to code but manually for now, need to fix later)
### @calcom/apps/swagger
The documentation of the API lives inside the code, and it's auto-generated, the only endpoints that return without a valid apiKey are the homepage, with a JSON message redirecting you to the docs. and the /docs endpoint, which returns the OpenAPI 3.0 JSON Spec. Which SwaggerUi then consumes and generates the docs on.
## Deployment
`scripts/vercel-deploy.sh`
The API is deployed to vercel.com, it uses a similar deployment script to website or webapp, and requires transpilation of several shared packages that are part of our turborepo ["app-store", "prisma", "lib", "ee"]
in order to build and deploy properly.
## Envirorment variables
### Required
DATABASE_URL=DATABASE_URL="postgresql://postgres:@localhost:5450/calendso"
## Optional
API*KEY_PREFIX=cal*# This can be changed per envirorment so cal*test* for staging for example.
> If you're self-hosting under our commercial license, you can use any prefix you want for api keys. either leave the default cal\_ (not providing any envirorment variable) or modify it
**Ensure that while testing swagger, API project should be run in production mode**
We make sure of this by not using next in dev, but next build && next start, if you want hot module reloading and such when developing, please use yarn run next directly on apps/api.
See <https://github.com/vercel/next.js/blob/canary/packages/next/server/dev/hot-reloader.ts#L79>. Here in dev mode OPTIONS method is hardcoded to return only GET and OPTIONS as allowed method. Running in Production mode would cause this file to be not used. This is hot-reloading logic only.
To remove this limitation, we need to ensure that on local endpoints are requested by swagger at /api/v1 and not /v1
## Hosted api through cal.com
> _❗ WARNING: This is still experimental and not fully implemented yet❗_
Go to console.cal.com
Add a deployment or go to an existing one.
Activate API or Admin addon
Provide your `DATABASE_URL`
Now you can call api.cal.com?key=CALCOM_LICENSE_KEY, which will connect to your own databaseUrl.
## How to deploy
We recommend deploying API in vercel.
There's some settings that you'll need to setup.
Under Vercel > Your API Project > Settings
In General > Build & Development Settings
BUILD COMMAND: `yarn turbo run build --scope=@calcom/api --include-dependencies --no-deps`
OUTPUT DIRECTORY: `apps/api/.next`
In Git > Ignored Build Step
Add this command: `./scripts/vercel-deploy.sh`
See `scripts/vercel-deploy.sh` for more info on how the deployment is done.
> _❗ IMORTANT: If you're forking the API repo you will need to update the URLs in both the main repo [`.gitmodules`](https://github.com/calcom/cal.com/blob/main/.gitmodules#L7) and this repo [`./scripts/vercel-deploy.sh`](https://github.com/calcom/api/blob/main/scripts/vercel-deploy.sh#L3) ❗_
## Environment variables
Lastly API requires an env var for `DATABASE_URL` and `CALCOM_LICENSE_KEY`
+1
View File
@@ -0,0 +1 @@
export const PRISMA_CLIENT_CACHING_TIME = 1000 * 60 * 60 * 24; // one day in ms
+24
View File
@@ -0,0 +1,24 @@
import { nanoid } from "nanoid";
import type { NextMiddleware } from "next-api-middleware";
export const addRequestId: NextMiddleware = async (_req, res, next) => {
// Apply header with unique ID to every request
res.setHeader("Calcom-Response-ID", nanoid());
// Add all headers here instead of next.config.js as it is throwing error( Cannot set headers after they are sent to the client) for OPTIONS method
// It is known to happen only in Dev Mode.
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS, PATCH, DELETE, POST, PUT");
res.setHeader(
"Access-Control-Allow-Headers",
"X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Content-Type, api_key, Authorization"
);
// Ensure all OPTIONS request are automatically successful. Headers are already set above.
if (_req.method === "OPTIONS") {
res.status(200).end();
return;
}
// Let remaining middleware and API route execute
await next();
};
+14
View File
@@ -0,0 +1,14 @@
import * as Sentry from "@sentry/nextjs";
import type { NextMiddleware } from "next-api-middleware";
export const captureErrors: NextMiddleware = async (_req, res, next) => {
try {
// Catch any errors that are thrown in remaining
// middleware and the API route handler
await next();
} catch (error) {
Sentry.captureException(error);
console.log(error);
res.status(400).json({ message: "Something went wrong", error });
}
};
+43
View File
@@ -0,0 +1,43 @@
import { PrismaClient } from "@prisma/client";
import type { NextMiddleware } from "next-api-middleware";
import { CONSOLE_URL } from "@calcom/lib/constants";
const LOCAL_CONSOLE_URL = process.env.NEXT_PUBLIC_CONSOLE_URL || CONSOLE_URL;
// This replaces the prisma client for the custom one if the key is valid
export const customPrismaClient: NextMiddleware = async (req, res, next) => {
const {
query: { key },
} = req;
// If no custom api Id is provided, attach to request the regular cal.com prisma client.
if (!key) {
req.prisma = new PrismaClient();
await next();
return;
}
// If we have a key, we check if the deployment matching the key, has a databaseUrl value set.
const databaseUrl = await fetch(`${LOCAL_CONSOLE_URL}/api/deployments/database?key=${key}`)
.then((res) => res.json())
.then((res) => res.databaseUrl);
if (!databaseUrl) {
res.status(400).json({ error: "no databaseUrl set up at your instance yet" });
return;
}
req.prisma = new PrismaClient({ datasources: { db: { url: databaseUrl } } });
/* @note:
In order to skip verifyApiKey for customPrisma requests,
we pass isAdmin true, and userId 0, if we detect them later,
we skip verifyApiKey logic and pass onto next middleware instead.
*/
req.isAdmin = true;
req.isCustomPrisma = true;
// We don't need the key from here and on. Prevents unrecognized key errors.
delete req.query.key;
await next();
await req.prisma.$disconnect();
// @ts-expect-error testing
delete req.prisma;
};
+9
View File
@@ -0,0 +1,9 @@
import type { NextMiddleware } from "next-api-middleware";
export const extendRequest: NextMiddleware = async (req, res, next) => {
req.pagination = {
take: 100,
skip: 0,
};
await next();
};
+32
View File
@@ -0,0 +1,32 @@
import type { NextMiddleware } from "next-api-middleware";
export const httpMethod = (allowedHttpMethod: "GET" | "POST" | "PATCH" | "DELETE"): NextMiddleware => {
return async function (req, res, next) {
if (req.method === allowedHttpMethod || req.method == "OPTIONS") {
await next();
} else {
res.status(405).json({ message: `Only ${allowedHttpMethod} Method allowed` });
res.end();
}
};
};
// Made this so we can support several HTTP Methods in one route and use it there.
// Could be further extracted into a third function or refactored into one.
// that checks if it's just a string or an array and apply the correct logic to both cases.
export const httpMethods = (allowedHttpMethod: string[]): NextMiddleware => {
return async function (req, res, next) {
if (allowedHttpMethod.some((method) => method === req.method || req.method == "OPTIONS")) {
await next();
} else {
res.status(405).json({ message: `Only ${allowedHttpMethod} Method allowed` });
res.end();
}
};
};
export const HTTP_POST = httpMethod("POST");
export const HTTP_GET = httpMethod("GET");
export const HTTP_PATCH = httpMethod("PATCH");
export const HTTP_DELETE = httpMethod("DELETE");
export const HTTP_GET_DELETE_PATCH = httpMethods(["GET", "DELETE", "PATCH"]);
export const HTTP_GET_OR_POST = httpMethods(["GET", "POST"]);
+14
View File
@@ -0,0 +1,14 @@
export default function parseJSONSafely(str: string) {
try {
return JSON.parse(str);
} catch (e) {
console.error((e as Error).message);
if ((e as Error).message.includes("Unexpected token")) {
return {
success: false,
message: `Invalid JSON in the body: ${(e as Error).message}`,
};
}
return {};
}
}
+47
View File
@@ -0,0 +1,47 @@
import type { NextMiddleware } from "next-api-middleware";
import { hashAPIKey } from "@calcom/features/ee/api-keys/lib/apiKeys";
import checkLicense from "@calcom/features/ee/common/server/checkLicense";
import { isAdminGuard } from "~/lib/utils/isAdmin";
// Used to check if the apiKey is not expired, could be extracted if reused. but not for now.
export const dateNotInPast = function (date: Date) {
const now = new Date();
if (now.setHours(0, 0, 0, 0) > date.setHours(0, 0, 0, 0)) {
return true;
}
};
// This verifies the apiKey and sets the user if it is valid.
export const verifyApiKey: NextMiddleware = async (req, res, next) => {
const { prisma, isCustomPrisma, isAdmin } = req;
const hasValidLicense = await checkLicense(prisma);
if (!hasValidLicense)
return res.status(401).json({ error: "Invalid or missing CALCOM_LICENSE_KEY environment variable" });
// If the user is an admin and using a license key (from customPrisma), skip the apiKey check.
if (isCustomPrisma && isAdmin) {
await next();
return;
}
// Check if the apiKey query param is provided.
if (!req.query.apiKey) return res.status(401).json({ message: "No apiKey provided" });
// remove the prefix from the user provided api_key. If no env set default to "cal_"
const strippedApiKey = `${req.query.apiKey}`.replace(process.env.API_KEY_PREFIX || "cal_", "");
// Hash the key again before matching against the database records.
const hashedKey = hashAPIKey(strippedApiKey);
// Check if the hashed api key exists in database.
const apiKey = await prisma.apiKey.findUnique({ where: { hashedKey } });
// If cannot find any api key. Throw a 401 Unauthorized.
if (!apiKey) return res.status(401).json({ error: "Your apiKey is not valid" });
if (apiKey.expiresAt && dateNotInPast(apiKey.expiresAt)) {
return res.status(401).json({ error: "This apiKey is expired" });
}
if (!apiKey.userId) return res.status(404).json({ error: "No user found for this apiKey" });
// save the user id in the request for later use
req.userId = apiKey.userId;
// save the isAdmin boolean here for later use
req.isAdmin = await isAdminGuard(req);
req.isCustomPrisma = false;
await next();
};
+37
View File
@@ -0,0 +1,37 @@
import { label } from "next-api-middleware";
import { addRequestId } from "./addRequestid";
import { captureErrors } from "./captureErrors";
import { customPrismaClient } from "./customPrisma";
import { extendRequest } from "./extendRequest";
import {
HTTP_POST,
HTTP_DELETE,
HTTP_PATCH,
HTTP_GET,
HTTP_GET_OR_POST,
HTTP_GET_DELETE_PATCH,
} from "./httpMethods";
import { verifyApiKey } from "./verifyApiKey";
import { withPagination } from "./withPagination";
const withMiddleware = label(
{
HTTP_GET_OR_POST,
HTTP_GET_DELETE_PATCH,
HTTP_GET,
HTTP_PATCH,
HTTP_POST,
HTTP_DELETE,
addRequestId,
verifyApiKey,
customPrismaClient,
extendRequest,
pagination: withPagination,
sentry: captureErrors,
},
// The order here, determines the order of execution, put customPrismaClient before verifyApiKey always.
["extendRequest", "sentry", "customPrismaClient", "verifyApiKey", "addRequestId"] // <-- Provide a list of middleware to call automatically
);
export { withMiddleware };
+17
View File
@@ -0,0 +1,17 @@
import type { NextMiddleware } from "next-api-middleware";
import z from "zod";
const withPage = z.object({
page: z.coerce.number().min(1).optional().default(1),
take: z.coerce.number().min(1).optional().default(10),
});
export const withPagination: NextMiddleware = async (req, _, next) => {
const { page, take } = withPage.parse(req.query);
const skip = (page - 1) * take;
req.pagination = {
take,
skip,
};
await next();
};
+187
View File
@@ -0,0 +1,187 @@
import type { EventLocationType } from "@calcom/app-store/locations";
import type {
Attendee,
Availability,
Booking,
BookingReference,
Credential,
DestinationCalendar,
EventType,
EventTypeCustomInput,
Membership,
Payment,
ReminderMail,
Schedule,
SelectedCalendar,
Team,
User,
Webhook,
} from "@calcom/prisma/client";
// Base response, used for all responses
export type BaseResponse = {
message?: string;
error?: Error;
};
// User
export type UserResponse = BaseResponse & {
user?: Partial<User>;
};
export type UsersResponse = BaseResponse & {
users?: Partial<User>[];
};
// Team
export type TeamResponse = BaseResponse & {
team?: Partial<Team>;
owner?: Partial<Membership>;
};
export type TeamsResponse = BaseResponse & {
teams?: Partial<Team>[];
};
// SelectedCalendar
export type SelectedCalendarResponse = BaseResponse & {
selected_calendar?: Partial<SelectedCalendar>;
};
export type SelectedCalendarsResponse = BaseResponse & {
selected_calendars?: Partial<SelectedCalendar>[];
};
// Attendee
export type AttendeeResponse = BaseResponse & {
attendee?: Partial<Attendee>;
};
// Grouping attendees in booking arrays for now,
// later might remove endpoint and move to booking endpoint altogether.
export type AttendeesResponse = BaseResponse & {
attendees?: Partial<Attendee>[];
};
// Availability
export type AvailabilityResponse = BaseResponse & {
availability?: Partial<Availability>;
};
export type AvailabilitiesResponse = BaseResponse & {
availabilities?: Partial<Availability>[];
};
// BookingReference
export type BookingReferenceResponse = BaseResponse & {
booking_reference?: Partial<BookingReference>;
};
export type BookingReferencesResponse = BaseResponse & {
booking_references?: Partial<BookingReference>[];
};
// Booking
export type BookingResponse = BaseResponse & {
booking?: Partial<Booking>;
};
export type BookingsResponse = BaseResponse & {
bookings?: Partial<Booking>[];
};
// Credential
export type CredentialResponse = BaseResponse & {
credential?: Partial<Credential>;
};
export type CredentialsResponse = BaseResponse & {
credentials?: Partial<Credential>[];
};
// DestinationCalendar
export type DestinationCalendarResponse = BaseResponse & {
destination_calendar?: Partial<DestinationCalendar>;
};
export type DestinationCalendarsResponse = BaseResponse & {
destination_calendars?: Partial<DestinationCalendar>[];
};
// Membership
export type MembershipResponse = BaseResponse & {
membership?: Partial<Membership>;
};
export type MembershipsResponse = BaseResponse & {
memberships?: Partial<Membership>[];
};
// EventTypeCustomInput
export type EventTypeCustomInputResponse = BaseResponse & {
event_type_custom_input?: Partial<EventTypeCustomInput>;
};
export type EventTypeCustomInputsResponse = BaseResponse & {
event_type_custom_inputs?: Partial<EventTypeCustomInput>[];
};
// From rrule https://jakubroztocil.github.io/rrule freq
export enum Frequency {
"YEARLY",
"MONTHLY",
"WEEKLY",
"DAILY",
"HOURLY",
"MINUTELY",
"SECONDLY",
}
interface EventTypeExtended extends Omit<EventType, "recurringEvent" | "locations"> {
recurringEvent: {
dtstart?: Date | undefined;
interval?: number | undefined;
count?: number | undefined;
freq?: Frequency | undefined;
until?: Date | undefined;
tzid?: string | undefined;
} | null;
locations:
| {
link?: string | undefined;
address?: string | undefined;
hostPhoneNumber?: string | undefined;
type: EventLocationType;
}[]
| null
// eslint-disable-next-line @typescript-eslint/no-explicit-any
| any;
}
// EventType
export type EventTypeResponse = BaseResponse & {
event_type?: Partial<EventType | EventTypeExtended>;
};
export type EventTypesResponse = BaseResponse & {
event_types?: Partial<EventType | EventTypeExtended>[];
};
// Payment
export type PaymentResponse = BaseResponse & {
payment?: Partial<Payment>;
};
export type PaymentsResponse = BaseResponse & {
payments?: Partial<Payment>[];
};
// Schedule
export type ScheduleResponse = BaseResponse & {
schedule?: Partial<Schedule>;
};
export type SchedulesResponse = BaseResponse & {
schedules?: Partial<Schedule>[];
};
// Webhook
export type WebhookResponse = BaseResponse & {
webhook?: Partial<Webhook> | null;
};
export type WebhooksResponse = BaseResponse & {
webhooks?: Partial<Webhook>[];
};
// ReminderMail
export type ReminderMailResponse = BaseResponse & {
reminder_mail?: Partial<ReminderMail>;
};
export type ReminderMailsResponse = BaseResponse & {
reminder_mails?: Partial<ReminderMail>[];
};
+9
View File
@@ -0,0 +1,9 @@
import type { NextApiRequest } from "next";
import { UserPermissionRole } from "@calcom/prisma/enums";
export const isAdminGuard = async (req: NextApiRequest) => {
const { userId, prisma } = req;
const user = await prisma.user.findUnique({ where: { id: userId } });
return user?.role === UserPermissionRole.ADMIN;
};
+4
View File
@@ -0,0 +1,4 @@
export const stringifyISODate = (date: Date | undefined): string => {
return `${date?.toISOString()}`;
};
// TODO: create a function that takes an object and returns a stringified version of dates of it.
+29
View File
@@ -0,0 +1,29 @@
import { z } from "zod";
import { _ApiKeyModel as ApiKey } from "@calcom/prisma/zod";
export const apiKeyCreateBodySchema = ApiKey.pick({
note: true,
expiresAt: true,
userId: true,
})
.partial({ userId: true })
.merge(z.object({ neverExpires: z.boolean().optional() }))
.strict();
export const apiKeyEditBodySchema = ApiKey.pick({
note: true,
})
.partial()
.strict();
export const apiKeyPublicSchema = ApiKey.pick({
id: true,
userId: true,
note: true,
createdAt: true,
expiresAt: true,
lastUsedAt: true,
/** We might never want to expose these. Leaving this a as reminder. */
// hashedKey: true,
});
+39
View File
@@ -0,0 +1,39 @@
import { z } from "zod";
import { _AttendeeModel as Attendee } from "@calcom/prisma/zod";
import { timeZone } from "~/lib/validations/shared/timeZone";
export const schemaAttendeeBaseBodyParams = Attendee.pick({
bookingId: true,
email: true,
name: true,
timeZone: true,
});
const schemaAttendeeCreateParams = z
.object({
bookingId: z.number().int(),
email: z.string().email(),
name: z.string(),
timeZone: timeZone,
})
.strict();
const schemaAttendeeEditParams = z
.object({
name: z.string().optional(),
email: z.string().email().optional(),
timeZone: timeZone.optional(),
})
.strict();
export const schemaAttendeeEditBodyParams = schemaAttendeeBaseBodyParams.merge(schemaAttendeeEditParams);
export const schemaAttendeeCreateBodyParams = schemaAttendeeBaseBodyParams.merge(schemaAttendeeCreateParams);
export const schemaAttendeeReadPublic = Attendee.pick({
id: true,
bookingId: true,
name: true,
email: true,
timeZone: true,
});
+54
View File
@@ -0,0 +1,54 @@
import { z } from "zod";
import { _AvailabilityModel as Availability, _ScheduleModel as Schedule } from "@calcom/prisma/zod";
import { denullishShape } from "@calcom/prisma/zod-utils";
export const schemaAvailabilityBaseBodyParams = /** We make all these properties required */ denullishShape(
Availability.pick({
/** We need to pass the schedule where this availability belongs to */
scheduleId: true,
})
);
export const schemaAvailabilityReadPublic = Availability.pick({
id: true,
startTime: true,
endTime: true,
date: true,
scheduleId: true,
days: true,
// eventTypeId: true /** @deprecated */,
// userId: true /** @deprecated */,
}).merge(z.object({ success: z.boolean().optional(), Schedule: Schedule.partial() }).partial());
const schemaAvailabilityCreateParams = z
.object({
startTime: z.date().or(z.string()),
endTime: z.date().or(z.string()),
days: z.array(z.number()).optional(),
})
.strict();
const schemaAvailabilityEditParams = z
.object({
startTime: z.date().or(z.string()).optional(),
endTime: z.date().or(z.string()).optional(),
days: z.array(z.number()).optional(),
})
.strict();
export const schemaAvailabilityEditBodyParams = schemaAvailabilityEditParams;
export const schemaAvailabilityCreateBodyParams = schemaAvailabilityBaseBodyParams.merge(
schemaAvailabilityCreateParams
);
export const schemaAvailabilityReadBodyParams = z
.object({
userId: z.union([z.number(), z.array(z.number())]),
})
.partial();
export const schemaSingleAvailabilityReadBodyParams = z.object({
userId: z.number(),
});
@@ -0,0 +1,28 @@
import { _BookingReferenceModel as BookingReference } from "@calcom/prisma/zod";
import { denullishShape } from "@calcom/prisma/zod-utils";
export const schemaBookingReferenceBaseBodyParams = BookingReference.pick({
type: true,
bookingId: true,
uid: true,
meetingId: true,
meetingPassword: true,
meetingUrl: true,
deleted: true,
}).partial();
export const schemaBookingReferenceReadPublic = BookingReference.pick({
id: true,
type: true,
bookingId: true,
uid: true,
meetingId: true,
meetingPassword: true,
meetingUrl: true,
deleted: true,
});
export const schemaBookingCreateBodyParams = BookingReference.omit({ id: true, bookingId: true })
.merge(denullishShape(BookingReference.pick({ bookingId: true })))
.strict();
export const schemaBookingEditBodyParams = schemaBookingCreateBodyParams.partial();
+77
View File
@@ -0,0 +1,77 @@
import { z } from "zod";
import { _BookingModel as Booking, _AttendeeModel, _UserModel, _PaymentModel } from "@calcom/prisma/zod";
import { extendedBookingCreateBody, iso8601 } from "@calcom/prisma/zod-utils";
import { schemaQueryUserId } from "./shared/queryUserId";
const schemaBookingBaseBodyParams = Booking.pick({
uid: true,
userId: true,
eventTypeId: true,
title: true,
description: true,
startTime: true,
endTime: true,
status: true,
}).partial();
export const schemaBookingCreateBodyParams = extendedBookingCreateBody.merge(schemaQueryUserId.partial());
const schemaBookingEditParams = z
.object({
title: z.string().optional(),
startTime: iso8601.optional(),
endTime: iso8601.optional(),
// Not supporting responses in edit as that might require re-triggering emails
// responses
})
.strict();
export const schemaBookingEditBodyParams = schemaBookingBaseBodyParams.merge(schemaBookingEditParams);
export const schemaBookingReadPublic = Booking.extend({
attendees: z
.array(
_AttendeeModel.pick({
email: true,
name: true,
timeZone: true,
locale: true,
})
)
.optional(),
user: _UserModel
.pick({
email: true,
name: true,
timeZone: true,
locale: true,
})
.optional(),
payment: z
.array(
_PaymentModel.pick({
id: true,
success: true,
paymentOption: true,
})
)
.optional(),
}).pick({
id: true,
userId: true,
description: true,
eventTypeId: true,
uid: true,
title: true,
startTime: true,
endTime: true,
timeZone: true,
attendees: true,
user: true,
payment: true,
metadata: true,
status: true,
responses: true,
});
@@ -0,0 +1,48 @@
import { z } from "zod";
import { _DestinationCalendarModel as DestinationCalendar } from "@calcom/prisma/zod";
export const schemaDestinationCalendarBaseBodyParams = DestinationCalendar.pick({
integration: true,
externalId: true,
eventTypeId: true,
bookingId: true,
userId: true,
}).partial();
const schemaDestinationCalendarCreateParams = z
.object({
integration: z.string(),
externalId: z.string(),
eventTypeId: z.number(),
bookingId: z.number(),
userId: z.number(),
})
.strict();
export const schemaDestinationCalendarCreateBodyParams = schemaDestinationCalendarBaseBodyParams.merge(
schemaDestinationCalendarCreateParams
);
const schemaDestinationCalendarEditParams = z
.object({
integration: z.string().optional(),
externalId: z.string().optional(),
eventTypeId: z.number().optional(),
bookingId: z.number().optional(),
userId: z.number().optional(),
})
.strict();
export const schemaDestinationCalendarEditBodyParams = schemaDestinationCalendarBaseBodyParams.merge(
schemaDestinationCalendarEditParams
);
export const schemaDestinationCalendarReadPublic = DestinationCalendar.pick({
id: true,
integration: true,
externalId: true,
eventTypeId: true,
bookingId: true,
userId: true,
});
@@ -0,0 +1,13 @@
import { _EventTypeCustomInputModel as EventTypeCustomInput } from "@calcom/prisma/zod";
export const schemaEventTypeCustomInputBaseBodyParams = EventTypeCustomInput.omit({
id: true,
});
export const schemaEventTypeCustomInputPublic = EventTypeCustomInput.omit({});
export const schemaEventTypeCustomInputBodyParams = schemaEventTypeCustomInputBaseBodyParams.strict();
export const schemaEventTypeCustomInputEditBodyParams = schemaEventTypeCustomInputBaseBodyParams
.partial()
.strict();
+139
View File
@@ -0,0 +1,139 @@
import { z } from "zod";
import { _EventTypeModel as EventType, _HostModel } from "@calcom/prisma/zod";
import { customInputSchema, eventTypeBookingFields } from "@calcom/prisma/zod-utils";
import { Frequency } from "~/lib/types";
import { jsonSchema } from "./shared/jsonSchema";
import { schemaQueryUserId } from "./shared/queryUserId";
import { timeZone } from "./shared/timeZone";
const recurringEventInputSchema = z.object({
dtstart: z.string().optional(),
interval: z.number().int().optional(),
count: z.number().int().optional(),
freq: z.nativeEnum(Frequency).optional(),
until: z.string().optional(),
tzid: timeZone.optional(),
});
const hostSchema = _HostModel.pick({
isFixed: true,
userId: true,
});
export const schemaEventTypeBaseBodyParams = EventType.pick({
title: true,
description: true,
slug: true,
length: true,
hidden: true,
position: true,
eventName: true,
timeZone: true,
periodType: true,
periodStartDate: true,
schedulingType: true,
periodEndDate: true,
periodDays: true,
periodCountCalendarDays: true,
requiresConfirmation: true,
disableGuests: true,
hideCalendarNotes: true,
minimumBookingNotice: true,
beforeEventBuffer: true,
afterEventBuffer: true,
teamId: true,
price: true,
currency: true,
slotInterval: true,
successRedirectUrl: true,
locations: true,
})
.merge(z.object({ hosts: z.array(hostSchema).optional().default([]) }))
.partial()
.strict();
const schemaEventTypeCreateParams = z
.object({
title: z.string(),
slug: z.string(),
description: z.string().optional().nullable(),
length: z.number().int(),
metadata: z.any().optional(),
recurringEvent: recurringEventInputSchema.optional(),
seatsPerTimeSlot: z.number().optional(),
seatsShowAttendees: z.boolean().optional(),
bookingFields: eventTypeBookingFields.optional(),
})
.strict();
export const schemaEventTypeCreateBodyParams = schemaEventTypeBaseBodyParams
.merge(schemaEventTypeCreateParams)
.merge(schemaQueryUserId.partial());
const schemaEventTypeEditParams = z
.object({
title: z.string().optional(),
slug: z.string().optional(),
length: z.number().int().optional(),
seatsPerTimeSlot: z.number().optional(),
seatsShowAttendees: z.boolean().optional(),
bookingFields: eventTypeBookingFields.optional(),
})
.strict();
export const schemaEventTypeEditBodyParams = schemaEventTypeBaseBodyParams.merge(schemaEventTypeEditParams);
export const schemaEventTypeReadPublic = EventType.pick({
id: true,
title: true,
slug: true,
length: true,
hidden: true,
position: true,
userId: true,
teamId: true,
eventName: true,
timeZone: true,
periodType: true,
periodStartDate: true,
periodEndDate: true,
periodDays: true,
periodCountCalendarDays: true,
requiresConfirmation: true,
recurringEvent: true,
disableGuests: true,
hideCalendarNotes: true,
minimumBookingNotice: true,
beforeEventBuffer: true,
afterEventBuffer: true,
schedulingType: true,
price: true,
currency: true,
slotInterval: true,
successRedirectUrl: true,
description: true,
locations: true,
metadata: true,
seatsPerTimeSlot: true,
seatsShowAttendees: true,
bookingFields: true,
}).merge(
z.object({
locations: z
.array(
z.object({
link: z.string().optional(),
address: z.string().optional(),
hostPhoneNumber: z.string().optional(),
type: z.any().optional(),
})
)
.nullable(),
metadata: jsonSchema.nullable(),
customInputs: customInputSchema.array().optional(),
link: z.string().optional(),
bookingFields: eventTypeBookingFields.optional().nullable(),
})
);
+65
View File
@@ -0,0 +1,65 @@
import { z } from "zod";
import { MembershipRole } from "@calcom/prisma/enums";
import { _MembershipModel as Membership, _TeamModel } from "@calcom/prisma/zod";
import { stringOrNumber } from "@calcom/prisma/zod-utils";
import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
export const schemaMembershipBaseBodyParams = Membership.omit({});
const schemaMembershipRequiredParams = z.object({
teamId: z.number(),
});
export const membershipCreateBodySchema = Membership.partial({
accepted: true,
role: true,
disableImpersonation: true,
}).transform((v) => ({
accepted: false,
role: MembershipRole.MEMBER,
disableImpersonation: false,
...v,
}));
export const membershipEditBodySchema = Membership.omit({
/** To avoid complication, let's avoid updating these, instead you can delete and create a new invite */
teamId: true,
userId: true,
})
.partial({
accepted: true,
role: true,
disableImpersonation: true,
})
.strict();
export const schemaMembershipBodyParams = schemaMembershipBaseBodyParams.merge(
schemaMembershipRequiredParams
);
export const schemaMembershipPublic = Membership.merge(z.object({ team: _TeamModel }).partial());
/** We extract userId and teamId from compound ID string */
export const membershipIdSchema = schemaQueryIdAsString
// So we can query additional team data in memberships
.merge(z.object({ teamId: z.union([stringOrNumber, z.array(stringOrNumber)]) }).partial())
.transform((v, ctx) => {
const [userIdStr, teamIdStr] = v.id.split("_");
const userIdInt = schemaQueryIdParseInt.safeParse({ id: userIdStr });
const teamIdInt = schemaQueryIdParseInt.safeParse({ id: teamIdStr });
if (!userIdInt.success) {
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "userId is not a number" });
return z.NEVER;
}
if (!teamIdInt.success) {
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "teamId is not a number " });
return z.NEVER;
}
return {
userId: userIdInt.data.id,
teamId: teamIdInt.data.id,
};
});
+5
View File
@@ -0,0 +1,5 @@
import { _PaymentModel as Payment } from "@calcom/prisma/zod";
// FIXME: Payment seems a delicate endpoint, do we need to remove anything here?
export const schemaPaymentBodyParams = Payment.omit({ id: true });
export const schemaPaymentPublic = Payment.omit({ externalId: true });
+17
View File
@@ -0,0 +1,17 @@
import { z } from "zod";
import { _ReminderMailModel as ReminderMail } from "@calcom/prisma/zod";
export const schemaReminderMailBaseBodyParams = ReminderMail.omit({ id: true }).partial();
export const schemaReminderMailPublic = ReminderMail.omit({});
const schemaReminderMailRequiredParams = z.object({
referenceId: z.number().int(),
reminderType: z.enum(["PENDING_BOOKING_CONFIRMATION"]),
elapsedMinutes: z.number().int(),
});
export const schemaReminderMailBodyParams = schemaReminderMailBaseBodyParams.merge(
schemaReminderMailRequiredParams
);
+34
View File
@@ -0,0 +1,34 @@
import { z } from "zod";
import dayjs from "@calcom/dayjs";
import { _ScheduleModel as Schedule, _AvailabilityModel as Availability } from "@calcom/prisma/zod";
import { timeZone } from "./shared/timeZone";
const schemaScheduleBaseBodyParams = Schedule.omit({ id: true, timeZone: true }).partial();
export const schemaSingleScheduleBodyParams = schemaScheduleBaseBodyParams.merge(
z.object({ userId: z.number().optional(), timeZone: timeZone.optional() })
);
export const schemaCreateScheduleBodyParams = schemaScheduleBaseBodyParams.merge(
z.object({ userId: z.number().optional(), name: z.string(), timeZone })
);
export const schemaSchedulePublic = z
.object({ id: z.number() })
.merge(Schedule)
.merge(
z.object({
availability: z
.array(Availability.pick({ id: true, eventTypeId: true, days: true, startTime: true, endTime: true }))
.transform((v) =>
v.map((item) => ({
...item,
startTime: dayjs.utc(item.startTime).format("HH:mm:ss"),
endTime: dayjs.utc(item.endTime).format("HH:mm:ss"),
}))
)
.optional(),
})
);
@@ -0,0 +1,48 @@
import z from "zod";
import { _SelectedCalendarModel as SelectedCalendar } from "@calcom/prisma/zod";
import { schemaQueryIdAsString } from "./shared/queryIdString";
import { schemaQueryIdParseInt } from "./shared/queryIdTransformParseInt";
export const schemaSelectedCalendarBaseBodyParams = SelectedCalendar;
export const schemaSelectedCalendarPublic = SelectedCalendar.omit({});
export const schemaSelectedCalendarBodyParams = schemaSelectedCalendarBaseBodyParams.partial({
userId: true,
});
export const schemaSelectedCalendarUpdateBodyParams = schemaSelectedCalendarBaseBodyParams.partial();
export const selectedCalendarIdSchema = schemaQueryIdAsString.transform((v, ctx) => {
/** We can assume the first part is the userId since it's an integer */
const [userIdStr, ...rest] = v.id.split("_");
/** We can assume that the remainder is both the integration type and external id combined */
const integration_externalId = rest.join("_");
/**
* Since we only handle calendars here we can split by `_calendar_` and re add it later on.
* This handle special cases like `google_calendar_c_blabla@group.calendar.google.com` and
* `hubspot_other_calendar`.
**/
const [_integration, externalId] = integration_externalId.split("_calendar_");
const userIdInt = schemaQueryIdParseInt.safeParse({ id: userIdStr });
if (!userIdInt.success) {
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "userId is not a number" });
return z.NEVER;
}
if (!_integration) {
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "Missing integration" });
return z.NEVER;
}
if (!externalId) {
ctx.addIssue({ code: z.ZodIssueCode.custom, message: "Missing externalId" });
return z.NEVER;
}
return {
userId: userIdInt.data.id,
/** We re-add the split `_calendar` string */
integration: `${_integration}_calendar`,
externalId,
};
});
@@ -0,0 +1,11 @@
import { z } from "zod";
// Extracted out as utility function so can be reused
// at different endpoints that require this validation.
export const baseApiParams = z.object({
// since we added apiKey as query param this is required by next-validations helper
// for query params to work properly and not fail.
apiKey: z.string().optional(),
// version required for supporting /v1/ redirect to query in api as *?version=1
version: z.string().optional(),
});
@@ -0,0 +1,9 @@
import { z } from "zod";
// Helper schema for JSON fields
type Literal = boolean | number | string;
type Json = Literal | { [key: string]: Json } | Json[];
const literalSchema = z.union([z.string(), z.number(), z.boolean()]);
export const jsonSchema: z.ZodSchema<Json> = z.lazy(() =>
z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)])
);
@@ -0,0 +1,20 @@
import { withValidation } from "next-validations";
import { z } from "zod";
import { baseApiParams } from "./baseApiParams";
// Extracted out as utility function so can be reused
// at different endpoints that require this validation.
export const schemaQueryAttendeeEmail = baseApiParams.extend({
attendeeEmail: z.string().email(),
});
export const schemaQuerySingleOrMultipleAttendeeEmails = z.object({
attendeeEmail: z.union([z.string().email(), z.array(z.string().email())]).optional(),
});
export const withValidQueryAttendeeEmail = withValidation({
schema: schemaQueryAttendeeEmail,
type: "Zod",
mode: "query",
});
@@ -0,0 +1,19 @@
import { withValidation } from "next-validations";
import { z } from "zod";
import { baseApiParams } from "./baseApiParams";
// Extracted out as utility function so can be reused
// at different endpoints that require this validation.
/** Used for UUID style id queries */
export const schemaQueryIdAsString = baseApiParams
.extend({
id: z.string(),
})
.strict();
export const withValidQueryIdString = withValidation({
schema: schemaQueryIdAsString,
type: "Zod",
mode: "query",
});
@@ -0,0 +1,16 @@
import { withValidation } from "next-validations";
import { z } from "zod";
import { baseApiParams } from "./baseApiParams";
// Extracted out as utility function so can be reused
// at different endpoints that require this validation.
export const schemaQueryIdParseInt = baseApiParams.extend({
id: z.coerce.number(),
});
export const withValidQueryIdTransformParseInt = withValidation({
schema: schemaQueryIdParseInt,
type: "Zod",
mode: "query",
});
@@ -0,0 +1,21 @@
import { withValidation } from "next-validations";
import { z } from "zod";
import { baseApiParams } from "./baseApiParams";
// Extracted out as utility function so can be reused
// at different endpoints that require this validation.
export const schemaQueryTeamId = baseApiParams
.extend({
teamId: z
.string()
.regex(/^\d+$/)
.transform((id) => parseInt(id)),
})
.strict();
export const withValidQueryTeamId = withValidation({
schema: schemaQueryTeamId,
type: "Zod",
mode: "query",
});
@@ -0,0 +1,26 @@
import { withValidation } from "next-validations";
import { z } from "zod";
import { stringOrNumber } from "@calcom/prisma/zod-utils";
import { baseApiParams } from "./baseApiParams";
// Extracted out as utility function so can be reused
// at different endpoints that require this validation.
export const schemaQueryUserId = baseApiParams.extend({
userId: stringOrNumber,
});
export const schemaQuerySingleOrMultipleUserIds = z.object({
userId: z.union([stringOrNumber, z.array(stringOrNumber)]),
});
export const schemaQuerySingleOrMultipleTeamIds = z.object({
teamId: z.union([stringOrNumber, z.array(stringOrNumber)]),
});
export const withValidQueryUserId = withValidation({
schema: schemaQueryUserId,
type: "Zod",
mode: "query",
});
@@ -0,0 +1,7 @@
import tzdata from "tzdata";
import * as z from "zod";
// @note: This is a custom validation that checks if the timezone is valid and exists in the tzdb library
export const timeZone = z.string().refine((tz: string) => Object.keys(tzdata.zones).includes(tz), {
message: `Expected one of the following: ${Object.keys(tzdata.zones).join(", ")}`,
});
+18
View File
@@ -0,0 +1,18 @@
import { z } from "zod";
import { _TeamModel as Team } from "@calcom/prisma/zod";
export const schemaTeamBaseBodyParams = Team.omit({ id: true, createdAt: true }).partial({
hideBranding: true,
metadata: true,
});
const schemaTeamRequiredParams = z.object({});
export const schemaTeamBodyParams = schemaTeamBaseBodyParams.merge(schemaTeamRequiredParams).strict();
export const schemaTeamUpdateBodyParams = schemaTeamBodyParams.partial();
export const schemaTeamReadPublic = Team.omit({});
export const schemaTeamsReadPublic = z.array(schemaTeamReadPublic);
+170
View File
@@ -0,0 +1,170 @@
import { z } from "zod";
import { checkUsername } from "@calcom/lib/server/checkUsername";
import { _UserModel as User } from "@calcom/prisma/zod";
import { iso8601 } from "@calcom/prisma/zod-utils";
import { timeZone } from "~/lib/validations/shared/timeZone";
// @note: These are the ONLY values allowed as weekStart. So user don't introduce bad data.
enum weekdays {
MONDAY = "Monday",
TUESDAY = "Tuesday",
WEDNESDAY = "Wednesday",
THURSDAY = "Thursday",
FRIDAY = "Friday",
SATURDAY = "Saturday",
SUNDAY = "Sunday",
}
// @note: extracted from apps/web/next-i18next.config.js, update if new locales.
enum locales {
EN = "en",
FR = "fr",
IT = "it",
RU = "ru",
ES = "es",
DE = "de",
PT = "pt",
RO = "ro",
NL = "nl",
PT_BR = "pt-BR",
ES_419 = "es-419",
KO = "ko",
JA = "ja",
PL = "pl",
AR = "ar",
IW = "iw",
ZH_CN = "zh-CN",
ZH_TW = "zh-TW",
CS = "cs",
SR = "sr",
SV = "sv",
VI = "vi",
}
enum theme {
DARK = "dark",
LIGHT = "light",
}
enum timeFormat {
TWELVE = 12,
TWENTY_FOUR = 24,
}
const usernameSchema = z
.string()
.transform((v) => v.toLowerCase())
// .refine(() => {})
.superRefine(async (val, ctx) => {
if (val) {
const result = await checkUsername(val);
if (!result.available) ctx.addIssue({ code: z.ZodIssueCode.custom, message: "already_in_use_error" });
if (result.premium) ctx.addIssue({ code: z.ZodIssueCode.custom, message: "premium_username" });
}
});
// @note: These are the values that are editable via PATCH method on the user Model
export const schemaUserBaseBodyParams = User.pick({
name: true,
email: true,
username: true,
bio: true,
timeZone: true,
weekStart: true,
theme: true,
defaultScheduleId: true,
locale: true,
timeFormat: true,
brandColor: true,
darkBrandColor: true,
allowDynamicBooking: true,
away: true,
role: true,
// @note: disallowing avatar changes via API for now. We can add it later if needed. User should upload image via UI.
// avatar: true,
}).partial();
// @note: partial() is used to allow for the user to edit only the fields they want to edit making all optional,
// if want to make any required do it in the schemaRequiredParams
// Here we can both require or not (adding optional or nullish) and also rewrite validations for any value
// for example making weekStart only accept weekdays as input
const schemaUserEditParams = z.object({
email: z.string().email(),
username: usernameSchema,
weekStart: z.nativeEnum(weekdays).optional(),
brandColor: z.string().min(4).max(9).regex(/^#/).optional(),
darkBrandColor: z.string().min(4).max(9).regex(/^#/).optional(),
timeZone: timeZone.optional(),
theme: z.nativeEnum(theme).optional().nullable(),
timeFormat: z.nativeEnum(timeFormat).optional(),
defaultScheduleId: z
.number()
.refine((id: number) => id > 0)
.optional()
.nullable(),
locale: z.nativeEnum(locales).optional().nullable(),
});
// @note: These are the values that are editable via PATCH method on the user Model,
// merging both BaseBodyParams with RequiredParams, and omiting whatever we want at the end.
const schemaUserCreateParams = z.object({
email: z.string().email(),
username: usernameSchema,
weekStart: z.nativeEnum(weekdays).optional(),
brandColor: z.string().min(4).max(9).regex(/^#/).optional(),
darkBrandColor: z.string().min(4).max(9).regex(/^#/).optional(),
timeZone: timeZone.optional(),
theme: z.nativeEnum(theme).optional().nullable(),
timeFormat: z.nativeEnum(timeFormat).optional(),
defaultScheduleId: z
.number()
.refine((id: number) => id > 0)
.optional()
.nullable(),
locale: z.nativeEnum(locales).optional(),
createdDate: iso8601.optional(),
});
// @note: These are the values that are editable via PATCH method on the user Model,
// merging both BaseBodyParams with RequiredParams, and omiting whatever we want at the end.
export const schemaUserEditBodyParams = schemaUserBaseBodyParams
.merge(schemaUserEditParams)
.omit({})
.partial()
.strict();
export const schemaUserCreateBodyParams = schemaUserBaseBodyParams
.merge(schemaUserCreateParams)
.omit({})
.strict();
// @note: These are the values that are always returned when reading a user
export const schemaUserReadPublic = User.pick({
id: true,
username: true,
name: true,
email: true,
emailVerified: true,
bio: true,
avatar: true,
timeZone: true,
weekStart: true,
endTime: true,
bufferTime: true,
theme: true,
defaultScheduleId: true,
locale: true,
timeFormat: true,
brandColor: true,
darkBrandColor: true,
allowDynamicBooking: true,
away: true,
createdDate: true,
verified: true,
invitedTo: true,
role: true,
});
export const schemaUsersReadPublic = z.array(schemaUserReadPublic);
+55
View File
@@ -0,0 +1,55 @@
import { z } from "zod";
import { WEBHOOK_TRIGGER_EVENTS } from "@calcom/features/webhooks/lib/constants";
import { _WebhookModel as Webhook } from "@calcom/prisma/zod";
const schemaWebhookBaseBodyParams = Webhook.pick({
userId: true,
eventTypeId: true,
eventTriggers: true,
active: true,
subscriberUrl: true,
payloadTemplate: true,
});
export const schemaWebhookCreateParams = z
.object({
// subscriberUrl: z.string().url(),
// eventTriggers: z.enum(WEBHOOK_TRIGGER_EVENTS).array(),
// active: z.boolean(),
payloadTemplate: z.string().optional().nullable(),
eventTypeId: z.number().optional(),
userId: z.number().optional(),
// API shouldn't mess with Apps webhooks yet (ie. Zapier)
// appId: z.string().optional().nullable(),
})
.strict();
export const schemaWebhookCreateBodyParams = schemaWebhookBaseBodyParams.merge(schemaWebhookCreateParams);
export const schemaWebhookEditBodyParams = schemaWebhookBaseBodyParams
.merge(
z.object({
eventTriggers: z.enum(WEBHOOK_TRIGGER_EVENTS).array().optional(),
})
)
.partial()
.strict();
export const schemaWebhookReadPublic = Webhook.pick({
id: true,
userId: true,
eventTypeId: true,
payloadTemplate: true,
eventTriggers: true,
// FIXME: We have some invalid urls saved in the DB
// subscriberUrl: true,
/** @todo: find out how to properly add back and validate those. */
// eventType: true,
// app: true,
appId: true,
}).merge(
z.object({
subscriberUrl: z.string(),
})
);
+10
View File
@@ -0,0 +1,10 @@
const path = require("path");
const i18nConfig = require("@calcom/config/next-i18next.config");
/** @type {import("next-i18next").UserConfig} */
const config = {
...i18nConfig,
localePath: path.resolve("../web/public/static/locales"),
};
module.exports = config;
+69
View File
@@ -0,0 +1,69 @@
const { withAxiom } = require("next-axiom");
module.exports = withAxiom({
transpilePackages: [
"@calcom/app-store",
"@calcom/core",
"@calcom/dayjs",
"@calcom/emails",
"@calcom/features",
"@calcom/lib",
"@calcom/prisma",
"@calcom/trpc",
],
async headers() {
return [
{
source: "/docs",
headers: [
{
key: "Access-Control-Allow-Credentials",
value: "true",
},
{
key: "Access-Control-Allow-Origin",
value: "*",
},
{
key: "Access-Control-Allow-Methods",
value: "GET, OPTIONS, PATCH, DELETE, POST, PUT",
},
{
key: "Access-Control-Allow-Headers",
value:
"X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, Content-Type, api_key, Authorization",
},
],
},
];
},
async rewrites() {
return {
afterFiles: [
// This redirects requests recieved at / the root to the /api/ folder.
{
source: "/v:version/:rest*",
destination: "/api/v:version/:rest*",
},
// This redirects requests to api/v*/ to /api/ passing version as a query parameter.
{
source: "/api/v:version/:rest*",
destination: "/api/:rest*?version=:version",
},
// Keeps backwards compatibility with old webhook URLs
{
source: "/api/hooks/:rest*",
destination: "/api/webhooks/:rest*",
},
],
fallback: [
// These rewrites are checked after both pages/public files
// and dynamic routes are checked
{
source: "/:path*",
destination: `/api/:path*`,
},
],
};
},
});
+21
View File
@@ -0,0 +1,21 @@
import type { Session } from "next-auth";
import type { NextApiRequest as BaseNextApiRequest } from "next/types";
import type { PrismaClient } from "@calcom/prisma/client";
export type * from "next/types";
export declare module "next" {
interface NextApiRequest extends BaseNextApiRequest {
session?: Session | null;
userId: number;
method: string;
prisma: PrismaClient;
// session: { user: { id: number } };
// query: Partial<{ [key: string]: string | string[] }>;
isAdmin: boolean;
isCustomPrisma: boolean;
pagination: { take: number; skip: number };
}
}
+45
View File
@@ -0,0 +1,45 @@
{
"name": "@calcom/api",
"version": "1.0.0",
"description": "Public API for Cal.com",
"main": "index.ts",
"repository": "git@github.com:calcom/api.git",
"author": "Cal.com Inc.",
"private": true,
"scripts": {
"build": "next build",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next",
"dev": "PORT=3002 next dev",
"lint": "eslint . --ignore-path .gitignore",
"lint:fix": "eslint . --ext .ts,.js,.tsx,.jsx --fix",
"start": "PORT=3002 next start",
"type-check": "tsc --pretty --noEmit"
},
"devDependencies": {
"@calcom/tsconfig": "*",
"@calcom/types": "*",
"node-mocks-http": "^1.11.0"
},
"dependencies": {
"@calcom/app-store": "*",
"@calcom/core": "*",
"@calcom/dayjs": "*",
"@calcom/emails": "*",
"@calcom/features": "*",
"@calcom/lib": "*",
"@calcom/prisma": "*",
"@calcom/trpc": "*",
"@sentry/nextjs": "^7.20.0",
"bcryptjs": "^2.4.3",
"memory-cache": "^0.2.0",
"next": "~13.2.1",
"next-api-middleware": "^1.0.1",
"next-axiom": "^0.16.0",
"next-swagger-doc": "^0.3.6",
"next-validations": "^0.2.0",
"typescript": "^4.9.4",
"tzdata": "^1.0.30",
"uuid": "^8.3.2",
"zod": "^3.20.2"
}
}
@@ -0,0 +1,17 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString";
export async function authMiddleware(req: NextApiRequest) {
const { userId, isAdmin, prisma } = req;
const { id } = schemaQueryIdAsString.parse(req.query);
// Admin can check any api key
if (isAdmin) return;
// Check if user can access the api key
const apiKey = await prisma.apiKey.findFirst({
where: { id, userId },
});
if (!apiKey) throw new HttpError({ statusCode: 404, message: "API key not found" });
}
@@ -0,0 +1,14 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString";
async function deleteHandler(req: NextApiRequest) {
const { prisma, query } = req;
const { id } = schemaQueryIdAsString.parse(query);
await prisma.apiKey.delete({ where: { id } });
return { message: `ApiKey with id: ${id} deleted` };
}
export default defaultResponder(deleteHandler);
+15
View File
@@ -0,0 +1,15 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { apiKeyPublicSchema } from "~/lib/validations/api-key";
import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString";
async function getHandler(req: NextApiRequest) {
const { prisma, query } = req;
const { id } = schemaQueryIdAsString.parse(query);
const api_key = await prisma.apiKey.findUniqueOrThrow({ where: { id } });
return { api_key: apiKeyPublicSchema.parse(api_key) };
}
export default defaultResponder(getHandler);
@@ -0,0 +1,16 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { apiKeyEditBodySchema, apiKeyPublicSchema } from "~/lib/validations/api-key";
import { schemaQueryIdAsString } from "~/lib/validations/shared/queryIdString";
async function patchHandler(req: NextApiRequest) {
const { prisma, body } = req;
const { id } = schemaQueryIdAsString.parse(req.query);
const data = apiKeyEditBodySchema.parse(body);
const api_key = await prisma.apiKey.update({ where: { id }, data });
return { api_key: apiKeyPublicSchema.parse(api_key) };
}
export default defaultResponder(patchHandler);
+18
View File
@@ -0,0 +1,18 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
import { authMiddleware } from "./_auth-middleware";
export default withMiddleware()(
defaultResponder(async (req: NextApiRequest, res: NextApiResponse) => {
await authMiddleware(req);
return defaultHandler({
GET: import("./_get"),
PATCH: import("./_patch"),
DELETE: import("./_delete"),
})(req, res);
})
);
+40
View File
@@ -0,0 +1,40 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import type { Ensure } from "@calcom/types/utils";
import { apiKeyPublicSchema } from "~/lib/validations/api-key";
import { schemaQuerySingleOrMultipleUserIds } from "~/lib/validations/shared/queryUserId";
type CustomNextApiRequest = NextApiRequest & {
args?: Prisma.ApiKeyFindManyArgs;
};
/** Admins can query other users' API keys */
function handleAdminRequests(req: CustomNextApiRequest) {
// To match type safety with runtime
if (!hasReqArgs(req)) throw Error("Missing req.args");
const { userId, isAdmin } = req;
if (isAdmin && req.query.userId) {
const query = schemaQuerySingleOrMultipleUserIds.parse(req.query);
const userIds = Array.isArray(query.userId) ? query.userId : [query.userId || userId];
req.args.where = { userId: { in: userIds } };
if (Array.isArray(query.userId)) req.args.orderBy = { userId: "asc" };
}
}
function hasReqArgs(req: CustomNextApiRequest): req is Ensure<CustomNextApiRequest, "args"> {
return "args" in req;
}
async function getHandler(req: CustomNextApiRequest) {
const { userId, isAdmin, prisma } = req;
req.args = isAdmin ? {} : { where: { userId } };
// Proof of concept: allowing mutation in exchange of composability
handleAdminRequests(req);
const data = await prisma.apiKey.findMany(req.args);
return { api_keys: data.map((v) => apiKeyPublicSchema.parse(v)) };
}
export default defaultResponder(getHandler);
+44
View File
@@ -0,0 +1,44 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { v4 } from "uuid";
import { generateUniqueAPIKey } from "@calcom/features/ee/api-keys/lib/apiKeys";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { apiKeyCreateBodySchema, apiKeyPublicSchema } from "~/lib/validations/api-key";
async function postHandler(req: NextApiRequest) {
const { userId, isAdmin, prisma } = req;
const { neverExpires, userId: bodyUserId, ...input } = apiKeyCreateBodySchema.parse(req.body);
const [hashedKey, apiKey] = generateUniqueAPIKey();
const args: Prisma.ApiKeyCreateArgs = {
data: {
id: v4(),
userId,
...input,
// And here we pass a null to expiresAt if never expires is true. otherwise just pass expiresAt from input
expiresAt: neverExpires ? null : input.expiresAt,
hashedKey,
},
};
if (!isAdmin && bodyUserId) throw new HttpError({ statusCode: 403, message: `ADMIN required for userId` });
if (isAdmin && bodyUserId) {
const where: Prisma.UserWhereInput = { id: bodyUserId };
await prisma.user.findFirstOrThrow({ where });
args.data.userId = bodyUserId;
}
const result = await prisma.apiKey.create(args);
return {
api_key: {
...apiKeyPublicSchema.parse(result),
key: `${process.env.API_KEY_PREFIX ?? "cal_"}${apiKey}`,
},
message: "API key created successfully. Save the `key` value as it won't be displayed again.",
};
}
export default defaultResponder(postHandler);
+10
View File
@@ -0,0 +1,10 @@
import { defaultHandler } from "@calcom/lib/server";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
export default withMiddleware("HTTP_GET_OR_POST")(
defaultHandler({
GET: import("./_get"),
POST: import("./_post"),
})
);
@@ -0,0 +1,20 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
async function authMiddleware(req: NextApiRequest) {
const { userId, isAdmin, prisma } = req;
const query = schemaQueryIdParseInt.parse(req.query);
// @note: Here we make sure to only return attendee's of the user's own bookings if the user is not an admin.
if (isAdmin) return;
// Find all user bookings, including attendees
const attendee = await prisma.attendee.findFirst({
where: { id: query.id, booking: { userId } },
});
// Flatten and merge all the attendees in one array
if (!attendee) throw new HttpError({ statusCode: 403, message: "Forbidden" });
}
export default authMiddleware;
@@ -0,0 +1,43 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
/**
* @swagger
* /attendees/{id}:
* delete:
* operationId: removeAttendeeById
* summary: Remove an existing attendee
* parameters:
* - in: query
* name: apiKey
* required: true
* schema:
* type: string
* description: Your API key
* - in: path
* name: id
* schema:
* type: integer
* required: true
* description: ID of the attendee to delete
* tags:
* - attendees
* responses:
* 201:
* description: OK, attendee removed successfully
* 400:
* description: Bad request. Attendee id is invalid.
* 401:
* description: Authorization information is missing or invalid.
*/
export async function deleteHandler(req: NextApiRequest) {
const { prisma, query } = req;
const { id } = schemaQueryIdParseInt.parse(query);
await prisma.attendee.delete({ where: { id } });
return { message: `Attendee with id: ${id} deleted successfully` };
}
export default defaultResponder(deleteHandler);
+44
View File
@@ -0,0 +1,44 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { schemaAttendeeReadPublic } from "~/lib/validations/attendee";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
/**
* @swagger
* /attendees/{id}:
* get:
* operationId: getAttendeeById
* summary: Find an attendee
* parameters:
* - in: query
* name: apiKey
* required: true
* schema:
* type: string
* description: Your API key
* - in: path
* name: id
* schema:
* type: integer
* required: true
* description: ID of the attendee to get
* tags:
* - attendees
* responses:
* 200:
* description: OK
* 401:
* description: Authorization information is missing or invalid.
* 404:
* description: Attendee was not found
*/
export async function getHandler(req: NextApiRequest) {
const { prisma, query } = req;
const { id } = schemaQueryIdParseInt.parse(query);
const attendee = await prisma.attendee.findUnique({ where: { id } });
return { attendee: schemaAttendeeReadPublic.parse(attendee) };
}
export default defaultResponder(getHandler);
@@ -0,0 +1,76 @@
import type { NextApiRequest } from "next";
import type { z } from "zod";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { schemaAttendeeEditBodyParams, schemaAttendeeReadPublic } from "~/lib/validations/attendee";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
/**
* @swagger
* /attendees/{id}:
* patch:
* operationId: editAttendeeById
* summary: Edit an existing attendee
* requestBody:
* description: Edit an existing attendee related to one of your bookings
* required: true
* content:
* application/json:
* schema:
* type: object
* properties:
* email:
* type: string
* format: email
* name:
* type: string
* timeZone:
* type: string
* parameters:
* - in: query
* name: apiKey
* required: true
* schema:
* type: string
* description: Your API key
* - in: path
* name: id
* schema:
* type: integer
* required: true
* description: ID of the attendee to get
* tags:
* - attendees
* responses:
* 201:
* description: OK, attendee edited successfully
* 400:
* description: Bad request. Attendee body is invalid.
* 401:
* description: Authorization information is missing or invalid.
*/
export async function patchHandler(req: NextApiRequest) {
const { prisma, query, body } = req;
const { id } = schemaQueryIdParseInt.parse(query);
const data = schemaAttendeeEditBodyParams.parse(body);
await checkPermissions(req, data);
const attendee = await prisma.attendee.update({ where: { id }, data });
return { attendee: schemaAttendeeReadPublic.parse(attendee) };
}
async function checkPermissions(req: NextApiRequest, body: z.infer<typeof schemaAttendeeEditBodyParams>) {
const { isAdmin, prisma } = req;
if (isAdmin) return;
const { userId } = req;
const { bookingId } = body;
if (bookingId) {
// Ensure that the booking the attendee is being added to belongs to the user
const booking = await prisma.booking.findFirst({ where: { id: bookingId, userId } });
if (!booking) throw new HttpError({ statusCode: 403, message: "You don't have access to the booking" });
}
}
export default defaultResponder(patchHandler);
@@ -0,0 +1,18 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { defaultHandler, defaultResponder } from "@calcom/lib/server";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
import authMiddleware from "./_auth-middleware";
export default withMiddleware()(
defaultResponder(async (req: NextApiRequest, res: NextApiResponse) => {
await authMiddleware(req);
return defaultHandler({
GET: import("./_get"),
PATCH: import("./_patch"),
DELETE: import("./_delete"),
})(req, res);
})
);
+41
View File
@@ -0,0 +1,41 @@
import type { Prisma } from "@prisma/client";
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { schemaAttendeeReadPublic } from "~/lib/validations/attendee";
/**
* @swagger
* /attendees:
* get:
* operationId: listAttendees
* summary: Find all attendees
* parameters:
* - in: query
* name: apiKey
* required: true
* schema:
* type: string
* description: Your API key
* tags:
* - attendees
* responses:
* 200:
* description: OK
* 401:
* description: Authorization information is missing or invalid.
* 404:
* description: No attendees were found
*/
async function handler(req: NextApiRequest) {
const { userId, isAdmin, prisma } = req;
const args: Prisma.AttendeeFindManyArgs = isAdmin ? {} : { where: { booking: { userId } } };
const data = await prisma.attendee.findMany(args);
const attendees = data.map((attendee) => schemaAttendeeReadPublic.parse(attendee));
if (!attendees) throw new HttpError({ statusCode: 404, message: "No attendees were found" });
return { attendees };
}
export default defaultResponder(handler);
+81
View File
@@ -0,0 +1,81 @@
import type { NextApiRequest } from "next";
import { HttpError } from "@calcom/lib/http-error";
import { defaultResponder } from "@calcom/lib/server";
import { schemaAttendeeCreateBodyParams, schemaAttendeeReadPublic } from "~/lib/validations/attendee";
/**
* @swagger
* /attendees:
* post:
* operationId: addAttendee
* summary: Creates a new attendee
* parameters:
* - in: query
* name: apiKey
* required: true
* schema:
* type: string
* description: Your API key
* requestBody:
* description: Create a new attendee related to one of your bookings
* required: true
* content:
* application/json:
* schema:
* type: object
* required:
* - bookingId
* - name
* - email
* - timeZone
* properties:
* bookingId:
* type: number
* email:
* type: string
* format: email
* name:
* type: string
* timeZone:
* type: string
* tags:
* - attendees
* responses:
* 201:
* description: OK, attendee created
* 400:
* description: Bad request. Attendee body is invalid.
* 401:
* description: Authorization information is missing or invalid.
*/
async function postHandler(req: NextApiRequest) {
const { userId, isAdmin, prisma } = req;
const body = schemaAttendeeCreateBodyParams.parse(req.body);
if (!isAdmin) {
const userBooking = await prisma.booking.findFirst({
where: { userId, id: body.bookingId },
select: { id: true },
});
// Here we make sure to only return attendee's of the user's own bookings.
if (!userBooking) throw new HttpError({ statusCode: 403, message: "Forbidden" });
}
const data = await prisma.attendee.create({
data: {
email: body.email,
name: body.name,
timeZone: body.timeZone,
booking: { connect: { id: body.bookingId } },
},
});
return {
attendee: schemaAttendeeReadPublic.parse(data),
message: "Attendee created successfully",
};
}
export default defaultResponder(postHandler);
+10
View File
@@ -0,0 +1,10 @@
import { defaultHandler } from "@calcom/lib/server";
import { withMiddleware } from "~/lib/helpers/withMiddleware";
export default withMiddleware()(
defaultHandler({
GET: import("./_get"),
POST: import("./_post"),
})
);
@@ -0,0 +1,19 @@
import type { NextApiRequest } from "next";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
async function authMiddleware(req: NextApiRequest) {
const { userId, prisma, isAdmin, query } = req;
const { id } = schemaQueryIdParseInt.parse(query);
/** Admins can skip the ownership verification */
if (isAdmin) return;
/**
* There's a caveat here. If the availability exists but the user doesn't own it,
* the user will see a 404 error which may or not be the desired behavior.
*/
await prisma.availability.findFirstOrThrow({
where: { id, Schedule: { userId } },
});
}
export default authMiddleware;
@@ -0,0 +1,45 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
/**
* @swagger
* /availabilities/{id}:
* delete:
* operationId: removeAvailabilityById
* summary: Remove an existing availability
* parameters:
* - in: path
* name: id
* schema:
* type: integer
* required: true
* description: ID of the availability to delete
* - in: query
* name: apiKey
* required: true
* schema:
* type: integer
* description: Your API key
* tags:
* - availabilities
* externalDocs:
* url: https://docs.cal.com/availability
* responses:
* 201:
* description: OK, availability removed successfully
* 400:
* description: Bad request. Availability id is invalid.
* 401:
* description: Authorization information is missing or invalid.
*/
export async function deleteHandler(req: NextApiRequest) {
const { prisma, query } = req;
const { id } = schemaQueryIdParseInt.parse(query);
await prisma.availability.delete({ where: { id } });
return { message: `Availability with id: ${id} deleted successfully` };
}
export default defaultResponder(deleteHandler);
@@ -0,0 +1,49 @@
import type { NextApiRequest } from "next";
import { defaultResponder } from "@calcom/lib/server";
import { schemaAvailabilityReadPublic } from "~/lib/validations/availability";
import { schemaQueryIdParseInt } from "~/lib/validations/shared/queryIdTransformParseInt";
/**
* @swagger
* /availabilities/{id}:
* get:
* operationId: getAvailabilityById
* summary: Find an availability
* parameters:
* - in: path
* name: id
* schema:
* type: integer
* required: true
* description: ID of the availability to get
* - in: query
* name: apiKey
* required: true
* schema:
* type: integer
* description: Your API key
* tags:
* - availabilities
* externalDocs:
* url: https://docs.cal.com/availability
* responses:
* 200:
* description: OK
* 401:
* description: Authorization information is missing or invalid
* 404:
* description: Availability not found
*/
export async function getHandler(req: NextApiRequest) {
const { prisma, query } = req;
const { id } = schemaQueryIdParseInt.parse(query);
const availability = await prisma.availability.findUnique({
where: { id },
include: { Schedule: { select: { userId: true } } },
});
return { availability: schemaAvailabilityReadPublic.parse(availability) };
}
export default defaultResponder(getHandler);

Some files were not shown because too many files have changed in this diff Show More