refactor: v2 booking locations (#19613)

* refactor: v2 booking locations

* regenerate docs

* remove describe only

* update docs

* tests

* tests

* remove as any

* fix tests

* log

* remove unused dependency

* fix: bookings module dependency

* fix test

* fix: allow all integrations as booking location

* refactor: add organizersDefaultApp

* refactor: handle all integrations
This commit is contained in:
Lauris Skraucis
2025-03-12 13:03:01 +01:00
committed by GitHub
parent e20df1e7aa
commit a31242cdc5
11 changed files with 6998 additions and 114 deletions
+170 -9
View File
@@ -16233,6 +16233,104 @@
"data"
]
},
"BookingInputAddressLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "address",
"description": "only allowed value for type is `address` - it refers to address defined by the organizer."
}
},
"required": ["type"]
},
"BookingInputAttendeeAddressLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "attendeeAddress",
"description": "only allowed value for type is `attendeeAddress`"
},
"address": {
"type": "string",
"example": "123 Example St, City, Country"
}
},
"required": ["type", "address"]
},
"BookingInputAttendeeDefinedLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "attendeeDefined",
"description": "only allowed value for type is `attendeeDefined`"
},
"location": {
"type": "string",
"example": "321 Example St, City, Country"
}
},
"required": ["type", "location"]
},
"BookingInputAttendeePhoneLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "attendeePhone",
"description": "only allowed value for type is `attendeePhone`"
},
"phone": {
"type": "string",
"example": "+37120993151"
}
},
"required": ["type", "phone"]
},
"BookingInputIntegrationLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "integration",
"description": "only allowed value for type is `integration`"
},
"integration": {
"type": "string",
"example": "cal-video",
"enum": ["cal-video", "google-meet"]
}
},
"required": ["type", "integration"]
},
"BookingInputLinkLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "link",
"description": "only allowed value for type is `link` - it refers to link defined by the organizer."
}
},
"required": ["type"]
},
"BookingInputPhoneLocation_2024_08_13": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "phone",
"description": "only allowed value for type is `phone` - it refers to phone defined by the organizer."
}
},
"required": ["type"]
},
"ValidateBookingLocation_2024_08_13": {
"type": "object",
"properties": {}
},
"Attendee": {
"type": "object",
"properties": {
@@ -16356,9 +16454,30 @@
"deprecated": true
},
"location": {
"type": "string",
"description": "Location for this booking. Displayed in email and calendar event.",
"example": "https://example.com/meeting"
"description": "One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.",
"oneOf": [
{
"$ref": "#/components/schemas/BookingInputAddressLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeeAddressLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeeDefinedLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeePhoneLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputIntegrationLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputLinkLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputPhoneLocation_2024_08_13"
}
]
},
"metadata": {
"type": "object",
@@ -16425,9 +16544,30 @@
"deprecated": true
},
"location": {
"type": "string",
"description": "Location for this booking. Displayed in email and calendar event.",
"example": "https://example.com/meeting"
"description": "One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.",
"oneOf": [
{
"$ref": "#/components/schemas/BookingInputAddressLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeeAddressLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeeDefinedLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeePhoneLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputIntegrationLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputLinkLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputPhoneLocation_2024_08_13"
}
]
},
"metadata": {
"type": "object",
@@ -16500,9 +16640,30 @@
"deprecated": true
},
"location": {
"type": "string",
"description": "Location for this booking. Displayed in email and calendar event.",
"example": "https://example.com/meeting"
"description": "One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.",
"oneOf": [
{
"$ref": "#/components/schemas/BookingInputAddressLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeeAddressLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeeDefinedLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputAttendeePhoneLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputIntegrationLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputLinkLocation_2024_08_13"
},
{
"$ref": "#/components/schemas/BookingInputPhoneLocation_2024_08_13"
}
]
},
"metadata": {
"type": "object",