diff --git a/.changeset/fluffy-windows-train.md b/.changeset/fluffy-windows-train.md new file mode 100644 index 0000000000000..23aa227e49fd9 --- /dev/null +++ b/.changeset/fluffy-windows-train.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/meteor': major +--- + +Removes deprecated `voip-freeswitch.extension.assign` diff --git a/apps/meteor/ee/app/api-enterprise/server/voip-freeswitch.ts b/apps/meteor/ee/app/api-enterprise/server/voip-freeswitch.ts index dd7999286de30..1bf64934910a9 100644 --- a/apps/meteor/ee/app/api-enterprise/server/voip-freeswitch.ts +++ b/apps/meteor/ee/app/api-enterprise/server/voip-freeswitch.ts @@ -1,7 +1,6 @@ import { VoipFreeSwitch } from '@rocket.chat/core-services'; import { Users } from '@rocket.chat/models'; import { - isVoipFreeSwitchExtensionAssignProps, isVoipFreeSwitchExtensionGetDetailsProps, isVoipFreeSwitchExtensionGetInfoProps, isVoipFreeSwitchExtensionListProps, @@ -62,50 +61,6 @@ API.v1.addRoute( }, ); -API.v1.addRoute( - 'voip-freeswitch.extension.assign', - { - authRequired: true, - permissionsRequired: ['manage-voip-extensions'], - validateParams: isVoipFreeSwitchExtensionAssignProps, - deprecation: { - version: '8.0.0', - alternatives: ['/v1/users.update'], - }, - license: ['voip-enterprise'], - }, - { - async post() { - if (!settings.get('VoIP_TeamCollab_Enabled')) { - throw new Error('error-voip-disabled'); - } - - const { extension, username } = this.bodyParams; - - if (!username) { - return API.v1.notFound(); - } - - const user = await Users.findOneByUsername(username, { projection: { freeSwitchExtension: 1 } }); - if (!user) { - return API.v1.notFound(); - } - - const existingUser = extension && (await Users.findOneByFreeSwitchExtension(extension, { projection: { _id: 1 } })); - if (existingUser && existingUser._id !== user._id) { - throw new Error('error-extension-not-available'); - } - - if (extension && user.freeSwitchExtension === extension) { - return API.v1.success(); - } - - await Users.setFreeSwitchExtension(user._id, extension); - return API.v1.success(); - }, - }, -); - API.v1.addRoute( 'voip-freeswitch.extension.getDetails', { diff --git a/packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionAssignProps.ts b/packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionAssignProps.ts deleted file mode 100644 index 7fcaf6c6a9a18..0000000000000 --- a/packages/rest-typings/src/v1/voip-freeswitch/VoipFreeSwitchExtensionAssignProps.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { JSONSchemaType } from 'ajv'; -import Ajv from 'ajv'; - -const ajv = new Ajv(); - -export type VoipFreeSwitchExtensionAssignProps = { username: string; extension?: string }; - -const voipFreeSwitchExtensionAssignPropsSchema: JSONSchemaType = { - type: 'object', - properties: { - username: { - type: 'string', - nullable: false, - }, - extension: { - type: 'string', - nullable: true, - }, - }, - required: ['username'], - additionalProperties: false, -}; - -export const isVoipFreeSwitchExtensionAssignProps = ajv.compile(voipFreeSwitchExtensionAssignPropsSchema); diff --git a/packages/rest-typings/src/v1/voip-freeswitch/index.ts b/packages/rest-typings/src/v1/voip-freeswitch/index.ts index 013e4e0351cbb..983dede04b23a 100644 --- a/packages/rest-typings/src/v1/voip-freeswitch/index.ts +++ b/packages/rest-typings/src/v1/voip-freeswitch/index.ts @@ -1,11 +1,9 @@ import type { FreeSwitchExtension } from '@rocket.chat/core-typings'; -import type { VoipFreeSwitchExtensionAssignProps } from './VoipFreeSwitchExtensionAssignProps'; import type { VoipFreeSwitchExtensionGetDetailsProps } from './VoipFreeSwitchExtensionGetDetailsProps'; import type { VoipFreeSwitchExtensionGetInfoProps } from './VoipFreeSwitchExtensionGetInfoProps'; import type { VoipFreeSwitchExtensionListProps } from './VoipFreeSwitchExtensionListProps'; -export * from './VoipFreeSwitchExtensionAssignProps'; export * from './VoipFreeSwitchExtensionGetDetailsProps'; export * from './VoipFreeSwitchExtensionGetInfoProps'; export * from './VoipFreeSwitchExtensionListProps'; @@ -17,9 +15,6 @@ export type VoipFreeSwitchEndpoints = { '/v1/voip-freeswitch.extension.getDetails': { GET: (params: VoipFreeSwitchExtensionGetDetailsProps) => FreeSwitchExtension & { userId?: string; username?: string; name?: string }; }; - '/v1/voip-freeswitch.extension.assign': { - POST: (params: VoipFreeSwitchExtensionAssignProps) => void; - }; '/v1/voip-freeswitch.extension.getRegistrationInfoByUserId': { GET: (params: VoipFreeSwitchExtensionGetInfoProps) => { extension: FreeSwitchExtension;