From 1a573e16196dec8fb74eedbed50823ce204f995b Mon Sep 17 00:00:00 2001 From: Radhey Mugdal <99124293+RadheyMugdal@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:07:12 +0530 Subject: [PATCH] feat: v2 api hidden event types (#22715) * feat: v2 api hidden event types * feat: Add 'hidden' property to Input type in output.service.ts --------- Co-authored-by: Kartik Saini <41051387+kart1ka@users.noreply.github.com> --- .../event-types.controller.e2e-spec.ts | 45 +++++++++++++++++++ .../services/output-event-types.service.ts | 3 ++ .../event-types/services/output.service.ts | 1 + .../inputs/create-event-type.input.ts | 5 +++ .../inputs/update-event-type.input.ts | 5 +++ .../outputs/event-type.output.ts | 5 +++ 6 files changed, 64 insertions(+) diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts index e3cb6bba19..21a0ee75d5 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/controllers/event-types.controller.e2e-spec.ts @@ -2147,6 +2147,51 @@ describe("Event types Endpoints", () => { }); }); + describe("EventType Hidden Property", () => { + let createdEventTypeId: number; + + it("should create an event type with hidden=true", async () => { + const createPayload = { + title: "Hidden Event", + slug: "hidden-event", + lengthInMinutes: 30, + hidden: true, + }; + + const response = await request(app.getHttpServer()) + .post("/api/v2/event-types") + .set(CAL_API_VERSION_HEADER, VERSION_2024_06_14) + .send(createPayload) + .expect(201); + + const responseBody: ApiSuccessResponse = response.body; + const createdEventType = responseBody.data; + expect(createdEventType).toHaveProperty("id"); + expect(createdEventType.title).toEqual(createPayload.title); + expect(createdEventType.slug).toEqual(createPayload.slug); + expect(createdEventType.lengthInMinutes).toEqual(createPayload.lengthInMinutes); + expect(createdEventType.hidden).toBe(true); + + createdEventTypeId = createdEventType.id; + }); + + it("should update the hidden property to false", async () => { + const updatePayload = { + hidden: false, + }; + + const response = await request(app.getHttpServer()) + .patch(`/api/v2/event-types/${createdEventTypeId}`) + .set(CAL_API_VERSION_HEADER, VERSION_2024_06_14) + .send(updatePayload) + .expect(200); + + const responseBody: ApiSuccessResponse = response.body; + const updatedEventType = responseBody.data; + +expect(updatedEventType.hidden).toBe(false); + }); + }); + afterAll(async () => { await oauthClientRepositoryFixture.delete(oAuthClient.id); await teamRepositoryFixture.delete(organization.id); diff --git a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts index 5906653a6d..16db8f263e 100644 --- a/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts +++ b/apps/api/v2/src/ee/event-types/event-types_2024_06_14/services/output-event-types.service.ts @@ -89,6 +89,7 @@ type Input = Pick< | "hideCalendarEventDetails" | "hideOrganizerEmail" | "calVideoSettings" + | "hidden" >; @Injectable() @@ -127,6 +128,7 @@ export class OutputEventTypesService_2024_06_14 { hideCalendarEventDetails, hideOrganizerEmail, calVideoSettings, + hidden, } = databaseEventType; const locations = this.transformLocations(databaseEventType.locations); @@ -203,6 +205,7 @@ export class OutputEventTypesService_2024_06_14 { hideCalendarEventDetails, hideOrganizerEmail, calVideoSettings, + hidden, }; } diff --git a/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts b/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts index 6bc41e2bf6..e0af1153dd 100644 --- a/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts +++ b/apps/api/v2/src/modules/organizations/event-types/services/output.service.ts @@ -74,6 +74,7 @@ type Input = Pick< | "hideOrganizerEmail" | "team" | "calVideoSettings" + | "hidden" >; @Injectable() diff --git a/packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts b/packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts index 46785b0466..cb716300de 100644 --- a/packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts +++ b/packages/platform/types/event-types/event-types_2024_06_14/inputs/create-event-type.input.ts @@ -446,6 +446,11 @@ class BaseCreateEventTypeInput { type: CalVideoSettings, }) calVideoSettings?: CalVideoSettings; + + @IsOptional() + @IsBoolean() + @DocsPropertyOptional() + hidden?: boolean; } export class CreateEventTypeInput_2024_06_14 extends BaseCreateEventTypeInput { @IsOptional() diff --git a/packages/platform/types/event-types/event-types_2024_06_14/inputs/update-event-type.input.ts b/packages/platform/types/event-types/event-types_2024_06_14/inputs/update-event-type.input.ts index 51fe047664..f4c711c888 100644 --- a/packages/platform/types/event-types/event-types_2024_06_14/inputs/update-event-type.input.ts +++ b/packages/platform/types/event-types/event-types_2024_06_14/inputs/update-event-type.input.ts @@ -414,6 +414,11 @@ class BaseUpdateEventTypeInput { type: CalVideoSettings, }) calVideoSettings?: CalVideoSettings; + + @IsOptional() + @IsBoolean() + @DocsPropertyOptional() + hidden?: boolean; } export class UpdateEventTypeInput_2024_06_14 extends BaseUpdateEventTypeInput { @IsOptional() diff --git a/packages/platform/types/event-types/event-types_2024_06_14/outputs/event-type.output.ts b/packages/platform/types/event-types/event-types_2024_06_14/outputs/event-type.output.ts index eb9288f8e8..b94e7faf93 100644 --- a/packages/platform/types/event-types/event-types_2024_06_14/outputs/event-type.output.ts +++ b/packages/platform/types/event-types/event-types_2024_06_14/outputs/event-type.output.ts @@ -439,6 +439,11 @@ class BaseEventTypeOutput_2024_06_14 { type: CalVideoSettings, }) calVideoSettings?: CalVideoSettings | null; + + @IsOptional() + @IsBoolean() + @DocsProperty() + hidden?: boolean; } export class TeamEventTypeResponseHost extends TeamEventTypeHostInput {