From cb365117b33008294c34f7130a595b40ae6de882 Mon Sep 17 00:00:00 2001 From: Lauris Skraucis Date: Thu, 3 Apr 2025 16:37:40 +0200 Subject: [PATCH] feat: v2 return booking icsUid (#20527) * feat: v2 return booking icsUid * docs: regenerate --- .../controllers/e2e/user-bookings.e2e-spec.ts | 59 ++ .../2024-08-13/services/output.service.ts | 4 + apps/api/v2/swagger/documentation.json | 621 +++++++++++++----- docs/api-reference/v2/openapi.json | 518 +++++++++++---- .../2024-08-13/outputs/booking.output.ts | 6 + 5 files changed, 948 insertions(+), 260 deletions(-) diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts index c20fc1623e..b8227c329f 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/controllers/e2e/user-bookings.e2e-spec.ts @@ -586,6 +586,65 @@ describe("Bookings Endpoints 2024-08-13", () => { }); }); + it("should get a booking with icsUid", async () => { + const mockBooking = await bookingsRepositoryFixture.create({ + user: { + connect: { + id: user.id, + }, + }, + startTime: new Date(Date.UTC(2020, 0, 8, 13, 0, 0)), + endTime: new Date(Date.UTC(2020, 0, 8, 14, 0, 0)), + title: "peer coding lets goo", + uid: `booking-in-the-past-${randomString()}`, + eventType: { + connect: { + id: eventTypeId, + }, + }, + location: "integrations:daily", + customInputs: {}, + metadata: {}, + responses: { + name: "Oldie", + email: "oldie@gmail.com", + }, + attendees: { + create: { + email: "oldie@gmail.com", + name: "Oldie", + locale: "lv", + timeZone: "Europe/Rome", + }, + }, + rating: 10, + iCalUID: "ics-uid", + }); + + return request(app.getHttpServer()) + .get(`/v2/bookings/${mockBooking.uid}`) + .set(CAL_API_VERSION_HEADER, VERSION_2024_08_13) + .expect(200) + .then(async (response) => { + const responseBody: GetBookingOutput_2024_08_13 = response.body; + expect(responseBody.status).toEqual(SUCCESS_STATUS); + expect(responseBody.data).toBeDefined(); + expect(responseDataIsBooking(responseBody.data)).toBe(true); + + if (responseDataIsBooking(responseBody.data)) { + const data: BookingOutput_2024_08_13 = responseBody.data; + expect(data.id).toEqual(mockBooking.id); + expect(data.uid).toEqual(mockBooking.uid); + expect(data.icsUid).toEqual(mockBooking.iCalUID); + await bookingsRepositoryFixture.deleteById(mockBooking.id); + } else { + throw new Error( + "Invalid response data - expected booking but received array of possibily recurring bookings" + ); + } + }); + }); + it("should get 1 recurrence of a recurring booking", async () => { const recurrenceUid = createdRecurringBooking[0].uid; return request(app.getHttpServer()) diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts b/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts index cc1d1322c6..2ce7fe5743 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/services/output.service.ts @@ -136,6 +136,7 @@ export class OutputBookingsService_2024_08_13 { createdAt: databaseBooking.createdAt, updatedAt: databaseBooking.updatedAt, rating: databaseBooking.rating, + icsUid: databaseBooking.iCalUID, }; const bookingTransformed = plainToClass(BookingOutput_2024_08_13, booking, { strategy: "excludeAll" }); @@ -231,6 +232,7 @@ export class OutputBookingsService_2024_08_13 { createdAt: databaseBooking.createdAt, updatedAt: databaseBooking.updatedAt, rating: databaseBooking.rating, + icsUid: databaseBooking.iCalUID, }; const bookingTransformed = plainToClass(RecurringBookingOutput_2024_08_13, booking, { @@ -279,6 +281,7 @@ export class OutputBookingsService_2024_08_13 { createdAt: databaseBooking.createdAt, updatedAt: databaseBooking.updatedAt, rating: databaseBooking.rating, + icsUid: databaseBooking.iCalUID, }; const parsed = plainToClass(GetSeatedBookingOutput_2024_08_13, booking, { strategy: "excludeAll" }); @@ -388,6 +391,7 @@ export class OutputBookingsService_2024_08_13 { createdAt: databaseBooking.createdAt, updatedAt: databaseBooking.updatedAt, rating: databaseBooking.rating, + icsUid: databaseBooking.iCalUID, }; const parsed = plainToClass(GetRecurringSeatedBookingOutput_2024_08_13, booking, { diff --git a/apps/api/v2/swagger/documentation.json b/apps/api/v2/swagger/documentation.json index 329d4c877f..a8c8eabe9c 100644 --- a/apps/api/v2/swagger/documentation.json +++ b/apps/api/v2/swagger/documentation.json @@ -7487,6 +7487,301 @@ ] } }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/connect": { + "post": { + "operationId": "OrganizationsConferencingController_connectTeamApp", + "summary": "Connect your conferencing application to a team", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "orgId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": [ + "google-meet" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": [ + "Organizations/Teams Conferencing" + ] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/oauth/auth-url": { + "get": { + "operationId": "OrganizationsConferencingController_getTeamOAuthUrl", + "summary": "Get OAuth conferencing app's auth url for a team", + "parameters": [ + { + "name": "Authorization", + "required": true, + "in": "header", + "schema": { + "type": "string" + } + }, + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": [ + "zoom", + "msteams" + ], + "type": "string" + } + }, + { + "name": "returnTo", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "onErrorReturnTo", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConferencingAppsOauthUrlResponseDto" + } + } + } + } + }, + "tags": [ + "Organizations/Teams Conferencing" + ] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing": { + "get": { + "operationId": "OrganizationsConferencingController_listTeamConferencingApps", + "summary": "List team conferencing applications", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConferencingAppsOutputResponseDto" + } + } + } + } + }, + "tags": [ + "Organizations/Teams Conferencing" + ] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/default": { + "post": { + "operationId": "OrganizationsConferencingController_setTeamDefaultApp", + "summary": "Set team default conferencing application", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": [ + "google-meet", + "zoom", + "msteams", + "daily-video" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetDefaultConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": [ + "Organizations/Teams Conferencing" + ] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/default": { + "get": { + "operationId": "OrganizationsConferencingController_getTeamDefaultApp", + "summary": "Get team default conferencing application", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": [ + "google-meet", + "zoom", + "msteams", + "daily-video" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetDefaultConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": [ + "Organizations/Teams Conferencing" + ] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/disconnect": { + "delete": { + "operationId": "OrganizationsConferencingController_disconnectTeamApp", + "summary": "Disconnect team conferencing application", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": [ + "google-meet", + "zoom", + "msteams" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisconnectConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": [ + "Organizations/Teams Conferencing" + ] + } + }, "/v2/schedules": { "post": { "operationId": "SchedulesController_2024_06_11_createSchedule", @@ -13701,6 +13996,154 @@ "data" ] }, + "ConferencingAppsOutputDto": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Id of the conferencing app credentials" + }, + "type": { + "type": "string", + "example": "google_video", + "description": "Type of conferencing app" + }, + "userId": { + "type": "number", + "description": "Id of the user associated to the conferencing app" + }, + "invalid": { + "type": "boolean", + "nullable": true, + "example": true, + "description": "Whether if the connection is working or not." + } + }, + "required": [ + "id", + "type", + "userId" + ] + }, + "ConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/ConferencingAppsOutputDto" + } + }, + "required": [ + "status", + "data" + ] + }, + "GetConferencingAppsOauthUrlResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + } + }, + "required": [ + "status" + ] + }, + "ConferencingAppsOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "success", + "error" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConferencingAppsOutputDto" + } + } + }, + "required": [ + "status", + "data" + ] + }, + "SetDefaultConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + } + }, + "required": [ + "status" + ] + }, + "DefaultConferencingAppsOutputDto": { + "type": "object", + "properties": { + "appSlug": { + "type": "string" + }, + "appLink": { + "type": "string" + } + } + }, + "GetDefaultConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + }, + "data": { + "$ref": "#/components/schemas/DefaultConferencingAppsOutputDto" + } + }, + "required": [ + "status" + ] + }, + "DisconnectConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": [ + "success", + "error" + ] + } + }, + "required": [ + "status" + ] + }, "OrgTeamOutputDto": { "type": "object", "properties": { @@ -18980,6 +19423,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -19132,6 +19580,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -19387,6 +19840,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "seatUid": { "type": "string", "example": "3be561a9-31f1-4b8e-aefc-9d9a085f0dd1" @@ -19526,6 +19984,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "seatUid": { "type": "string", "example": "3be561a9-31f1-4b8e-aefc-9d9a085f0dd1" @@ -19710,6 +20173,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -19844,6 +20312,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -20910,154 +21383,6 @@ "status", "data" ] - }, - "ConferencingAppsOutputDto": { - "type": "object", - "properties": { - "id": { - "type": "number", - "description": "Id of the conferencing app credentials" - }, - "type": { - "type": "string", - "example": "google_video", - "description": "Type of conferencing app" - }, - "userId": { - "type": "number", - "description": "Id of the user associated to the conferencing app" - }, - "invalid": { - "type": "boolean", - "nullable": true, - "example": true, - "description": "Whether if the connection is working or not." - } - }, - "required": [ - "id", - "type", - "userId" - ] - }, - "ConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/ConferencingAppsOutputDto" - } - }, - "required": [ - "status", - "data" - ] - }, - "GetConferencingAppsOauthUrlResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - } - }, - "required": [ - "status" - ] - }, - "ConferencingAppsOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "success", - "error" - ] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConferencingAppsOutputDto" - } - } - }, - "required": [ - "status", - "data" - ] - }, - "SetDefaultConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - } - }, - "required": [ - "status" - ] - }, - "DefaultConferencingAppsOutputDto": { - "type": "object", - "properties": { - "appSlug": { - "type": "string" - }, - "appLink": { - "type": "string" - } - } - }, - "GetDefaultConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - }, - "data": { - "$ref": "#/components/schemas/DefaultConferencingAppsOutputDto" - } - }, - "required": [ - "status" - ] - }, - "DisconnectConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": [ - "success", - "error" - ] - } - }, - "required": [ - "status" - ] } } } diff --git a/docs/api-reference/v2/openapi.json b/docs/api-reference/v2/openapi.json index 40e7dc995c..16d48686b6 100644 --- a/docs/api-reference/v2/openapi.json +++ b/docs/api-reference/v2/openapi.json @@ -7159,6 +7159,270 @@ "tags": ["OAuth Clients"] } }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/connect": { + "post": { + "operationId": "OrganizationsConferencingController_connectTeamApp", + "summary": "Connect your conferencing application to a team", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "orgId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": ["google-meet"], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": ["Organizations/Teams Conferencing"] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/oauth/auth-url": { + "get": { + "operationId": "OrganizationsConferencingController_getTeamOAuthUrl", + "summary": "Get OAuth conferencing app's auth url for a team", + "parameters": [ + { + "name": "Authorization", + "required": true, + "in": "header", + "schema": { + "type": "string" + } + }, + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": ["zoom", "msteams"], + "type": "string" + } + }, + { + "name": "returnTo", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "onErrorReturnTo", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConferencingAppsOauthUrlResponseDto" + } + } + } + } + }, + "tags": ["Organizations/Teams Conferencing"] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing": { + "get": { + "operationId": "OrganizationsConferencingController_listTeamConferencingApps", + "summary": "List team conferencing applications", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConferencingAppsOutputResponseDto" + } + } + } + } + }, + "tags": ["Organizations/Teams Conferencing"] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/default": { + "post": { + "operationId": "OrganizationsConferencingController_setTeamDefaultApp", + "summary": "Set team default conferencing application", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": ["google-meet", "zoom", "msteams", "daily-video"], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetDefaultConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": ["Organizations/Teams Conferencing"] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/default": { + "get": { + "operationId": "OrganizationsConferencingController_getTeamDefaultApp", + "summary": "Get team default conferencing application", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": ["google-meet", "zoom", "msteams", "daily-video"], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetDefaultConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": ["Organizations/Teams Conferencing"] + } + }, + "/v2/organizations/{orgId}/teams/{teamId}/conferencing/{app}/disconnect": { + "delete": { + "operationId": "OrganizationsConferencingController_disconnectTeamApp", + "summary": "Disconnect team conferencing application", + "parameters": [ + { + "name": "teamId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "app", + "required": true, + "in": "path", + "description": "Conferencing application type", + "schema": { + "enum": ["google-meet", "zoom", "msteams"], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DisconnectConferencingAppOutputResponseDto" + } + } + } + } + }, + "tags": ["Organizations/Teams Conferencing"] + } + }, "/v2/schedules": { "post": { "operationId": "SchedulesController_2024_06_11_createSchedule", @@ -12752,6 +13016,118 @@ }, "required": ["status", "data"] }, + "ConferencingAppsOutputDto": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Id of the conferencing app credentials" + }, + "type": { + "type": "string", + "example": "google_video", + "description": "Type of conferencing app" + }, + "userId": { + "type": "number", + "description": "Id of the user associated to the conferencing app" + }, + "invalid": { + "type": "boolean", + "nullable": true, + "example": true, + "description": "Whether if the connection is working or not." + } + }, + "required": ["id", "type", "userId"] + }, + "ConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/ConferencingAppsOutputDto" + } + }, + "required": ["status", "data"] + }, + "GetConferencingAppsOauthUrlResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + } + }, + "required": ["status"] + }, + "ConferencingAppsOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": ["success", "error"] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConferencingAppsOutputDto" + } + } + }, + "required": ["status", "data"] + }, + "SetDefaultConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + } + }, + "required": ["status"] + }, + "DefaultConferencingAppsOutputDto": { + "type": "object", + "properties": { + "appSlug": { + "type": "string" + }, + "appLink": { + "type": "string" + } + } + }, + "GetDefaultConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + }, + "data": { + "$ref": "#/components/schemas/DefaultConferencingAppsOutputDto" + } + }, + "required": ["status"] + }, + "DisconnectConferencingAppOutputResponseDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "success", + "enum": ["success", "error"] + } + }, + "required": ["status"] + }, "OrgTeamOutputDto": { "type": "object", "properties": { @@ -17310,6 +17686,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -17454,6 +17835,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -17694,6 +18080,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "seatUid": { "type": "string", "example": "3be561a9-31f1-4b8e-aefc-9d9a085f0dd1" @@ -17828,6 +18219,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "seatUid": { "type": "string", "example": "3be561a9-31f1-4b8e-aefc-9d9a085f0dd1" @@ -18001,6 +18397,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -18130,6 +18531,11 @@ "type": "number", "example": 4 }, + "icsUid": { + "type": "string", + "example": "ics_uid_123", + "description": "UID of ICS event." + }, "attendees": { "type": "array", "items": { @@ -18997,118 +19403,6 @@ } }, "required": ["status", "data"] - }, - "ConferencingAppsOutputDto": { - "type": "object", - "properties": { - "id": { - "type": "number", - "description": "Id of the conferencing app credentials" - }, - "type": { - "type": "string", - "example": "google_video", - "description": "Type of conferencing app" - }, - "userId": { - "type": "number", - "description": "Id of the user associated to the conferencing app" - }, - "invalid": { - "type": "boolean", - "nullable": true, - "example": true, - "description": "Whether if the connection is working or not." - } - }, - "required": ["id", "type", "userId"] - }, - "ConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/ConferencingAppsOutputDto" - } - }, - "required": ["status", "data"] - }, - "GetConferencingAppsOauthUrlResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - } - }, - "required": ["status"] - }, - "ConferencingAppsOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": ["success", "error"] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConferencingAppsOutputDto" - } - } - }, - "required": ["status", "data"] - }, - "SetDefaultConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - } - }, - "required": ["status"] - }, - "DefaultConferencingAppsOutputDto": { - "type": "object", - "properties": { - "appSlug": { - "type": "string" - }, - "appLink": { - "type": "string" - } - } - }, - "GetDefaultConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - }, - "data": { - "$ref": "#/components/schemas/DefaultConferencingAppsOutputDto" - } - }, - "required": ["status"] - }, - "DisconnectConferencingAppOutputResponseDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "example": "success", - "enum": ["success", "error"] - } - }, - "required": ["status"] } } } diff --git a/packages/platform/types/bookings/2024-08-13/outputs/booking.output.ts b/packages/platform/types/bookings/2024-08-13/outputs/booking.output.ts index c449299f4e..7eeb4f3868 100644 --- a/packages/platform/types/bookings/2024-08-13/outputs/booking.output.ts +++ b/packages/platform/types/bookings/2024-08-13/outputs/booking.output.ts @@ -255,6 +255,12 @@ class BaseBookingOutput_2024_08_13 { @IsOptional() @Expose() rating?: number; + + @ApiPropertyOptional({ type: String, example: "ics_uid_123", description: "UID of ICS event." }) + @IsString() + @IsOptional() + @Expose() + icsUid?: string; } export class BookingOutput_2024_08_13 extends BaseBookingOutput_2024_08_13 {