fix: slugified eventype slug (#25791)

This commit is contained in:
Anik Dhabal Babu
2025-12-12 14:02:00 +00:00
committed by GitHub
parent b46fb82695
commit 758b820a92
2 changed files with 23 additions and 5 deletions
@@ -27,6 +27,7 @@ import {
import { UserWithProfile } from "@/modules/users/users.repository";
import { Injectable, BadRequestException } from "@nestjs/common";
import { slugify } from "@calcom/platform-libraries";
import { getApps, getUsersCredentialsIncludeServiceAccountKey } from "@calcom/platform-libraries/app-store";
import {
validateCustomEventName,
@@ -129,6 +130,7 @@ export class InputEventTypesService_2024_06_14 {
useDestinationCalendarEmail,
disableGuests,
bookerActiveBookingsLimit,
slug,
...rest
} = inputEventType;
const confirmationPolicyTransformed = this.transformInputConfirmationPolicy(confirmationPolicy);
@@ -144,6 +146,8 @@ export class InputEventTypesService_2024_06_14 {
? this.transformInputBookerActiveBookingsLimit(bookerActiveBookingsLimit)
: {};
const slugifiedSlug = slugify(slug);
const metadata: EventTypeMetadata = {
bookerLayouts: this.transformInputBookerLayouts(bookerLayouts),
requiresConfirmationThreshold:
@@ -153,6 +157,7 @@ export class InputEventTypesService_2024_06_14 {
const eventType = {
...rest,
slug: slugifiedSlug,
length: lengthInMinutes,
locations: locationsTransformed,
bookingFields: this.transformInputBookingFields(effectiveBookingFields),
@@ -209,6 +214,7 @@ export class InputEventTypesService_2024_06_14 {
useDestinationCalendarEmail,
disableGuests,
bookerActiveBookingsLimit,
slug,
...rest
} = inputEventType;
const eventTypeDb = await this.eventTypesRepository.getEventTypeWithMetaData(eventTypeId);
@@ -243,6 +249,7 @@ export class InputEventTypesService_2024_06_14 {
const eventType = {
...rest,
...(slug ? { slug: slugify(slug) } : {}),
length: lengthInMinutes,
locations: locations ? this.transformInputLocations(locations) : undefined,
bookingFields: effectiveBookingFields
@@ -8,6 +8,7 @@ import { UsersRepository } from "@/modules/users/users.repository";
import { BadRequestException, Injectable, NotFoundException } from "@nestjs/common";
import { SchedulingType } from "@calcom/platform-libraries";
import { slugify } from "@calcom/platform-libraries";
import { EventTypeMetadata } from "@calcom/platform-libraries/event-types";
import {
CreateTeamEventTypeInput_2024_06_14,
@@ -42,11 +43,13 @@ export class InputOrganizationsEventTypesService {
teamId: number,
inputEventType: CreateTeamEventTypeInput_2024_06_14
) {
const slugifiedInputEventType = { ...inputEventType, slug: slugify(inputEventType.slug) };
await this.validateInputLocations(teamId, inputEventType.locations);
await this.validateHosts(teamId, inputEventType.hosts);
await this.validateTeamEventTypeSlug(teamId, inputEventType.slug);
await this.validateTeamEventTypeSlug(teamId, slugifiedInputEventType.slug);
const transformedBody = await this.transformInputCreateTeamEventType(teamId, inputEventType);
const transformedBody = await this.transformInputCreateTeamEventType(teamId, slugifiedInputEventType);
await this.inputEventTypesService.validateEventTypeInputs({
seatsPerTimeSlot: transformedBody.seatsPerTimeSlot,
@@ -75,13 +78,21 @@ export class InputOrganizationsEventTypesService {
teamId: number,
inputEventType: UpdateTeamEventTypeInput_2024_06_14
) {
const slugifiedInputEventType = inputEventType.slug
? { ...inputEventType, slug: slugify(inputEventType.slug) }
: inputEventType;
await this.validateInputLocations(teamId, inputEventType.locations);
await this.validateHosts(teamId, inputEventType.hosts);
if (inputEventType.slug) {
await this.validateTeamEventTypeSlug(teamId, inputEventType.slug);
if (slugifiedInputEventType.slug) {
await this.validateTeamEventTypeSlug(teamId, slugifiedInputEventType.slug);
}
const transformedBody = await this.transformInputUpdateTeamEventType(eventTypeId, teamId, inputEventType);
const transformedBody = await this.transformInputUpdateTeamEventType(
eventTypeId,
teamId,
slugifiedInputEventType
);
await this.inputEventTypesService.validateEventTypeInputs({
eventTypeId: eventTypeId,