From 675153a6bbfc73a63c40a8cde39cd422bddf4832 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 16:25:39 -0300 Subject: [PATCH 01/10] chore: adds deprecation warning log to livechat:removeCustomField --- apps/meteor/app/livechat/server/methods/removeCustomField.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/meteor/app/livechat/server/methods/removeCustomField.ts b/apps/meteor/app/livechat/server/methods/removeCustomField.ts index ad02df5823377..f41d214331c55 100644 --- a/apps/meteor/app/livechat/server/methods/removeCustomField.ts +++ b/apps/meteor/app/livechat/server/methods/removeCustomField.ts @@ -5,6 +5,7 @@ import { Meteor } from 'meteor/meteor'; import type { DeleteResult } from 'mongodb'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; +import { methodDeprecationLogger } from '../../../lib/server/lib/deprecationWarningLogger'; declare module '@rocket.chat/ddp-client' { // eslint-disable-next-line @typescript-eslint/naming-convention @@ -15,6 +16,7 @@ declare module '@rocket.chat/ddp-client' { Meteor.methods({ async 'livechat:removeCustomField'(_id) { + methodDeprecationLogger.method('livechat:removeCustomField', '8.0.0', '/v1/livechat/custom-fields.remove'); const uid = Meteor.userId(); if (!uid || !(await hasPermissionAsync(uid, 'view-livechat-manager'))) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { From e56c8ceae6d44eb5b819a23ba95ecac3973f64bc Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 16:25:56 -0300 Subject: [PATCH 02/10] chore: adds new endpoint to remove a custom field --- .../app/livechat/server/api/v1/customField.ts | 45 ++++++++++++++++++- packages/rest-typings/src/v1/omnichannel.ts | 37 ++++++++++++++- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/apps/meteor/app/livechat/server/api/v1/customField.ts b/apps/meteor/app/livechat/server/api/v1/customField.ts index 981562eef36e2..a5ebed09d9e9d 100644 --- a/apps/meteor/app/livechat/server/api/v1/customField.ts +++ b/apps/meteor/app/livechat/server/api/v1/customField.ts @@ -1,10 +1,20 @@ -import { isLivechatCustomFieldsProps, isPOSTLivechatCustomFieldParams, isPOSTLivechatCustomFieldsParams } from '@rocket.chat/rest-typings'; +import { LivechatCustomField } from '@rocket.chat/models'; +import { + isLivechatCustomFieldsProps, + isPOSTLivechatCustomFieldParams, + isPOSTLivechatCustomFieldsParams, + isPOSTLivechatRemoveCustomFields, + POSTLivechatRemoveCustomFieldSuccess, + validateBadRequestErrorResponse, + validateUnauthorizedErrorResponse, +} from '@rocket.chat/rest-typings'; import { API } from '../../../../api/server'; import { getPaginationItems } from '../../../../api/server/helpers/getPaginationItems'; import { setCustomFields, setMultipleCustomFields } from '../../lib/custom-fields'; import { findLivechatCustomFields, findCustomFieldById } from '../lib/customFields'; import { findGuest } from '../lib/livechat'; +import { ExtractRoutesFromAPI } from '/app/api/server/ApiClass'; API.v1.addRoute( 'livechat/custom.field', @@ -80,3 +90,36 @@ API.v1.addRoute( }, }, ); + +const livechatCustomFieldsEndpoints = API.v1.post( + 'livechat/custom-fields.remove', + { + response: { + 200: POSTLivechatRemoveCustomFieldSuccess, + 400: validateBadRequestErrorResponse, + 401: validateUnauthorizedErrorResponse, + }, + authRequired: true, + permissionsRequired: ['view-livechat-manager'], // is this permission appropriate for the targeted action? + body: isPOSTLivechatRemoveCustomFields, + }, + async function action() { + const { _id } = this.bodyParams; + + const customField = await LivechatCustomField.findOneById(_id, { projection: { _id: 1 } }); + if (!customField) { + API.v1.failure('custom-field-not-found'); + } + + const result = await LivechatCustomField.removeById(_id); + + return API.v1.success({ ...result }); + }, +); + +type LivechatCustomFieldsEndpoints = ExtractRoutesFromAPI; + +declare module '@rocket.chat/rest-typings' { + // eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-empty-interface + interface Endpoints extends LivechatCustomFieldsEndpoints {} +} diff --git a/packages/rest-typings/src/v1/omnichannel.ts b/packages/rest-typings/src/v1/omnichannel.ts index 08b687c157df2..2fe65cf3386a7 100644 --- a/packages/rest-typings/src/v1/omnichannel.ts +++ b/packages/rest-typings/src/v1/omnichannel.ts @@ -34,7 +34,7 @@ import type { OmichannelRoutingConfig, } from '@rocket.chat/core-typings'; import { ILivechatAgentStatus } from '@rocket.chat/core-typings'; -import type { WithId } from 'mongodb'; +import type { DeleteResult, WithId } from 'mongodb'; import { ajv } from './Ajv'; import type { Deprecated } from '../helpers/Deprecated'; @@ -3883,6 +3883,41 @@ const LivechatTriggerWebhookCallParamsSchema = { export const isLivechatTriggerWebhookCallParams = ajv.compile(LivechatTriggerWebhookCallParamsSchema); +type POSTLivechatRemoveCustomFields = { + _id: string; +}; + +const POSTLivechatRemoveCustomFieldsSchema = { + type: 'object', + properties: { + _id: { + type: 'string', + }, + }, + required: ['_id'], + additionalProperties: false, +}; + +export const isPOSTLivechatRemoveCustomFields = ajv.compile(POSTLivechatRemoveCustomFieldsSchema); + +const POSTLivechatRemoveCustomFieldSuccessSchema = { + type: 'object', + properties: { + acknowledged: { + type: 'boolean', + }, + deletedCount: { + type: 'number', + }, + success: { + type: 'boolean', + }, + }, + additionalProperties: false, +}; + +export const POSTLivechatRemoveCustomFieldSuccess = ajv.compile(POSTLivechatRemoveCustomFieldSuccessSchema); + export type ILivechatContactWithManagerData = Omit & { contactManager?: Pick; }; From 093cf41a4239cf2cbee4d787a5b4e973e9291e5f Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 17:01:09 -0300 Subject: [PATCH 03/10] fix: import paths --- apps/meteor/app/livechat/server/api/v1/customField.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/meteor/app/livechat/server/api/v1/customField.ts b/apps/meteor/app/livechat/server/api/v1/customField.ts index a5ebed09d9e9d..dbd491bacb9c9 100644 --- a/apps/meteor/app/livechat/server/api/v1/customField.ts +++ b/apps/meteor/app/livechat/server/api/v1/customField.ts @@ -10,11 +10,11 @@ import { } from '@rocket.chat/rest-typings'; import { API } from '../../../../api/server'; +import type { ExtractRoutesFromAPI } from '../../../../api/server/ApiClass'; import { getPaginationItems } from '../../../../api/server/helpers/getPaginationItems'; import { setCustomFields, setMultipleCustomFields } from '../../lib/custom-fields'; import { findLivechatCustomFields, findCustomFieldById } from '../lib/customFields'; import { findGuest } from '../lib/livechat'; -import { ExtractRoutesFromAPI } from '/app/api/server/ApiClass'; API.v1.addRoute( 'livechat/custom.field', From f9ce2ee3d6e7c031e6fbdcdf45fa2d9f72d5e877 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 17:01:57 -0300 Subject: [PATCH 04/10] chore: updates use of deprecated method for replacement endpoint --- .../omnichannel/customFields/useRemoveCustomField.tsx | 6 +++--- apps/meteor/tests/data/livechat/custom-fields.ts | 11 +++-------- .../omnichannel/omnichannel-contact-center.spec.ts | 4 ---- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx b/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx index d15da67020eea..4069341fd7116 100644 --- a/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx +++ b/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx @@ -1,6 +1,6 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; import { GenericModal } from '@rocket.chat/ui-client'; -import { useSetModal, useToastMessageDispatch, useMethod } from '@rocket.chat/ui-contexts'; +import { useSetModal, useToastMessageDispatch, useEndpoint } from '@rocket.chat/ui-contexts'; import { useQueryClient } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; @@ -8,13 +8,13 @@ export const useRemoveCustomField = () => { const { t } = useTranslation(); const setModal = useSetModal(); const dispatchToastMessage = useToastMessageDispatch(); - const removeCustomField = useMethod('livechat:removeCustomField'); + const removeCustomField = useEndpoint('POST', '/v1/livechat/custom-fields.remove'); const queryClient = useQueryClient(); const handleDelete = useEffectEvent((id: string) => { const onDeleteAgent = async () => { try { - await removeCustomField(id); + await removeCustomField({ _id: id }); dispatchToastMessage({ type: 'success', message: t('Custom_Field_Removed') }); queryClient.invalidateQueries({ queryKey: ['livechat-customFields'], diff --git a/apps/meteor/tests/data/livechat/custom-fields.ts b/apps/meteor/tests/data/livechat/custom-fields.ts index f4878f6f754d6..98c02ad4ec530 100644 --- a/apps/meteor/tests/data/livechat/custom-fields.ts +++ b/apps/meteor/tests/data/livechat/custom-fields.ts @@ -42,16 +42,11 @@ export const createCustomField = (customField: ExtendedCustomField): Promise new Promise((resolve, reject) => { void request - .post(methodCall('livechat:removeCustomField')) + .post(api('livechat/custom-fields.remove')) + .set(credentials) .send({ - message: JSON.stringify({ - method: 'livechat:removeCustomField', - params: [customFieldID], - id: 'id', - msg: 'method', - }), + _id: customFieldID, }) - .set(credentials) .end((err: Error, res: Response): void => { if (err) { return reject(err); diff --git a/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts b/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts index 430c3a683f9d8..bbfb4ccf56050 100644 --- a/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts @@ -81,10 +81,6 @@ test.describe('Omnichannel Contact Center', () => { test.afterAll(async ({ api }) => { // Remove added contacts await Promise.all([api.delete(`/livechat/visitor/${NEW_CONTACT.token}`), api.delete(`/livechat/visitor/${EXISTING_CONTACT.token}`)]); - - if (IS_EE) { - await api.post('method.call/livechat:removeCustomField', { message: NEW_CUSTOM_FIELD.field }); - } }); test.beforeEach(async ({ page }) => { From 0ef83e5f345236fefbf920286f18566c6f276121 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 17:07:05 -0300 Subject: [PATCH 05/10] doc: adds changeset --- .changeset/cool-pets-switch.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/cool-pets-switch.md diff --git a/.changeset/cool-pets-switch.md b/.changeset/cool-pets-switch.md new file mode 100644 index 0000000000000..bbe3e93b215d9 --- /dev/null +++ b/.changeset/cool-pets-switch.md @@ -0,0 +1,6 @@ +--- +"@rocket.chat/meteor": patch +"@rocket.chat/rest-typings": patch +--- + +Adds deprecation warning on `livechat:removeCustomField` with new endpoint replacing it; `livechat/custom-fields.remove` From eaba135464ccd99ebc32328af6b424b8560b7233 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Fri, 12 Sep 2025 18:08:38 -0300 Subject: [PATCH 06/10] chore: adds minor fixes --- apps/meteor/app/livechat/server/api/v1/customField.ts | 2 +- packages/rest-typings/src/v1/omnichannel.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/meteor/app/livechat/server/api/v1/customField.ts b/apps/meteor/app/livechat/server/api/v1/customField.ts index dbd491bacb9c9..d4763df63cccb 100644 --- a/apps/meteor/app/livechat/server/api/v1/customField.ts +++ b/apps/meteor/app/livechat/server/api/v1/customField.ts @@ -108,7 +108,7 @@ const livechatCustomFieldsEndpoints = API.v1.post( const customField = await LivechatCustomField.findOneById(_id, { projection: { _id: 1 } }); if (!customField) { - API.v1.failure('custom-field-not-found'); + return API.v1.failure('custom-field-not-found'); } const result = await LivechatCustomField.removeById(_id); diff --git a/packages/rest-typings/src/v1/omnichannel.ts b/packages/rest-typings/src/v1/omnichannel.ts index 2fe65cf3386a7..74980b55cd5e9 100644 --- a/packages/rest-typings/src/v1/omnichannel.ts +++ b/packages/rest-typings/src/v1/omnichannel.ts @@ -3911,6 +3911,7 @@ const POSTLivechatRemoveCustomFieldSuccessSchema = { }, success: { type: 'boolean', + enum: [true], }, }, additionalProperties: false, From 894b13569abbd861b688f8cbcc5218743a689e55 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Mon, 15 Sep 2025 15:17:03 -0300 Subject: [PATCH 07/10] chore: adds improvements suggested in code review --- .../meteor/app/livechat/server/api/v1/customField.ts | 12 +++++------- .../app/livechat/server/methods/removeCustomField.ts | 2 +- .../customFields/useRemoveCustomField.tsx | 2 +- apps/meteor/tests/data/livechat/custom-fields.ts | 2 +- packages/rest-typings/src/v1/omnichannel.ts | 10 ++-------- 5 files changed, 10 insertions(+), 18 deletions(-) diff --git a/apps/meteor/app/livechat/server/api/v1/customField.ts b/apps/meteor/app/livechat/server/api/v1/customField.ts index d4763df63cccb..f8155560f8b6a 100644 --- a/apps/meteor/app/livechat/server/api/v1/customField.ts +++ b/apps/meteor/app/livechat/server/api/v1/customField.ts @@ -92,7 +92,7 @@ API.v1.addRoute( ); const livechatCustomFieldsEndpoints = API.v1.post( - 'livechat/custom-fields.remove', + 'livechat/custom-fields.delete', { response: { 200: POSTLivechatRemoveCustomFieldSuccess, @@ -106,14 +106,12 @@ const livechatCustomFieldsEndpoints = API.v1.post( async function action() { const { _id } = this.bodyParams; - const customField = await LivechatCustomField.findOneById(_id, { projection: { _id: 1 } }); - if (!customField) { - return API.v1.failure('custom-field-not-found'); - } - const result = await LivechatCustomField.removeById(_id); + if (result.deletedCount === 0) { + return API.v1.failure('Custom field not found'); + } - return API.v1.success({ ...result }); + return API.v1.success(); }, ); diff --git a/apps/meteor/app/livechat/server/methods/removeCustomField.ts b/apps/meteor/app/livechat/server/methods/removeCustomField.ts index f41d214331c55..2dd9de6bb8a02 100644 --- a/apps/meteor/app/livechat/server/methods/removeCustomField.ts +++ b/apps/meteor/app/livechat/server/methods/removeCustomField.ts @@ -16,7 +16,7 @@ declare module '@rocket.chat/ddp-client' { Meteor.methods({ async 'livechat:removeCustomField'(_id) { - methodDeprecationLogger.method('livechat:removeCustomField', '8.0.0', '/v1/livechat/custom-fields.remove'); + methodDeprecationLogger.method('livechat:removeCustomField', '8.0.0', '/v1/livechat/custom-fields.delete'); const uid = Meteor.userId(); if (!uid || !(await hasPermissionAsync(uid, 'view-livechat-manager'))) { throw new Meteor.Error('error-not-allowed', 'Not allowed', { diff --git a/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx b/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx index 4069341fd7116..b67343c46cec6 100644 --- a/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx +++ b/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx @@ -8,7 +8,7 @@ export const useRemoveCustomField = () => { const { t } = useTranslation(); const setModal = useSetModal(); const dispatchToastMessage = useToastMessageDispatch(); - const removeCustomField = useEndpoint('POST', '/v1/livechat/custom-fields.remove'); + const removeCustomField = useEndpoint('POST', '/v1/livechat/custom-fields.delete'); const queryClient = useQueryClient(); const handleDelete = useEffectEvent((id: string) => { diff --git a/apps/meteor/tests/data/livechat/custom-fields.ts b/apps/meteor/tests/data/livechat/custom-fields.ts index 98c02ad4ec530..30073cb45396b 100644 --- a/apps/meteor/tests/data/livechat/custom-fields.ts +++ b/apps/meteor/tests/data/livechat/custom-fields.ts @@ -42,7 +42,7 @@ export const createCustomField = (customField: ExtendedCustomField): Promise new Promise((resolve, reject) => { void request - .post(api('livechat/custom-fields.remove')) + .post(api('livechat/custom-fields.delete')) .set(credentials) .send({ _id: customFieldID, diff --git a/packages/rest-typings/src/v1/omnichannel.ts b/packages/rest-typings/src/v1/omnichannel.ts index 74980b55cd5e9..441219d8eecc8 100644 --- a/packages/rest-typings/src/v1/omnichannel.ts +++ b/packages/rest-typings/src/v1/omnichannel.ts @@ -34,7 +34,7 @@ import type { OmichannelRoutingConfig, } from '@rocket.chat/core-typings'; import { ILivechatAgentStatus } from '@rocket.chat/core-typings'; -import type { DeleteResult, WithId } from 'mongodb'; +import type { WithId } from 'mongodb'; import { ajv } from './Ajv'; import type { Deprecated } from '../helpers/Deprecated'; @@ -3903,12 +3903,6 @@ export const isPOSTLivechatRemoveCustomFields = ajv.compile(POSTLivechatRemoveCustomFieldSuccessSchema); +export const POSTLivechatRemoveCustomFieldSuccess = ajv.compile(POSTLivechatRemoveCustomFieldSuccessSchema); export type ILivechatContactWithManagerData = Omit & { contactManager?: Pick; From 0b38beb30e05c9651a1140c34d7689ca82db3a3f Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Tue, 16 Sep 2025 11:54:17 -0300 Subject: [PATCH 08/10] chore: modifies param name from _id to customFieldId --- apps/meteor/app/livechat/server/api/v1/customField.ts | 4 ++-- .../views/omnichannel/customFields/useRemoveCustomField.tsx | 2 +- apps/meteor/tests/data/livechat/custom-fields.ts | 2 +- packages/rest-typings/src/v1/omnichannel.ts | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/meteor/app/livechat/server/api/v1/customField.ts b/apps/meteor/app/livechat/server/api/v1/customField.ts index f8155560f8b6a..4b89f019e50d3 100644 --- a/apps/meteor/app/livechat/server/api/v1/customField.ts +++ b/apps/meteor/app/livechat/server/api/v1/customField.ts @@ -104,9 +104,9 @@ const livechatCustomFieldsEndpoints = API.v1.post( body: isPOSTLivechatRemoveCustomFields, }, async function action() { - const { _id } = this.bodyParams; + const { customFieldId } = this.bodyParams; - const result = await LivechatCustomField.removeById(_id); + const result = await LivechatCustomField.removeById(customFieldId); if (result.deletedCount === 0) { return API.v1.failure('Custom field not found'); } diff --git a/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx b/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx index b67343c46cec6..80164cdab9540 100644 --- a/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx +++ b/apps/meteor/client/views/omnichannel/customFields/useRemoveCustomField.tsx @@ -14,7 +14,7 @@ export const useRemoveCustomField = () => { const handleDelete = useEffectEvent((id: string) => { const onDeleteAgent = async () => { try { - await removeCustomField({ _id: id }); + await removeCustomField({ customFieldId: id }); dispatchToastMessage({ type: 'success', message: t('Custom_Field_Removed') }); queryClient.invalidateQueries({ queryKey: ['livechat-customFields'], diff --git a/apps/meteor/tests/data/livechat/custom-fields.ts b/apps/meteor/tests/data/livechat/custom-fields.ts index 30073cb45396b..dc063b100e374 100644 --- a/apps/meteor/tests/data/livechat/custom-fields.ts +++ b/apps/meteor/tests/data/livechat/custom-fields.ts @@ -45,7 +45,7 @@ export const deleteCustomField = (customFieldID: string) => .post(api('livechat/custom-fields.delete')) .set(credentials) .send({ - _id: customFieldID, + customFieldId: customFieldID, }) .end((err: Error, res: Response): void => { if (err) { diff --git a/packages/rest-typings/src/v1/omnichannel.ts b/packages/rest-typings/src/v1/omnichannel.ts index 441219d8eecc8..6d6858488cc44 100644 --- a/packages/rest-typings/src/v1/omnichannel.ts +++ b/packages/rest-typings/src/v1/omnichannel.ts @@ -3884,17 +3884,17 @@ const LivechatTriggerWebhookCallParamsSchema = { export const isLivechatTriggerWebhookCallParams = ajv.compile(LivechatTriggerWebhookCallParamsSchema); type POSTLivechatRemoveCustomFields = { - _id: string; + customFieldId: string; }; const POSTLivechatRemoveCustomFieldsSchema = { type: 'object', properties: { - _id: { + customFieldId: { type: 'string', }, }, - required: ['_id'], + required: ['customFieldId'], additionalProperties: false, }; From cc6e44c6e487b2809cca8b84c2aa6796bec7a0f6 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Tue, 16 Sep 2025 16:18:19 -0300 Subject: [PATCH 09/10] chore: removes unnecessary hooks from test suite --- .../omnichannel-contact-center.spec.ts | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts b/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts index bbfb4ccf56050..f772fae53ab82 100644 --- a/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts @@ -1,7 +1,6 @@ import { faker } from '@faker-js/faker'; import { createToken } from '../../../client/lib/utils/createToken'; -import { IS_EE } from '../config/constants'; import { Users } from '../fixtures/userStates'; import { OmnichannelContacts } from '../page-objects/omnichannel-contacts-list'; import { OmnichannelSection } from '../page-objects/omnichannel-section'; @@ -32,17 +31,6 @@ const DELETE_CONTACT = { phones: [faker.phone.number('+############')], }; -const NEW_CUSTOM_FIELD = { - searchable: true, - field: 'hiddenCustomField', - label: 'hiddenCustomField', - defaultValue: 'test_contact_center_hidden_customField', - scope: 'visitor', - visibility: 'hidden', - required: true, - regexp: '', -}; - const URL = { contactCenter: '/omnichannel-directory/contacts', newContact: '/omnichannel-directory/contacts/new', @@ -72,10 +60,6 @@ test.describe('Omnichannel Contact Center', () => { test.beforeAll(async ({ api }) => { // Add contacts await Promise.all([api.post('/omnichannel/contacts', EXISTING_CONTACT), api.post('/omnichannel/contacts', DELETE_CONTACT)]); - - if (IS_EE) { - await api.post('/livechat/custom.field', NEW_CUSTOM_FIELD); - } }); test.afterAll(async ({ api }) => { From 2cb78ad4acc60f8089e39b111e9ee8dccedad0f5 Mon Sep 17 00:00:00 2001 From: Lucas Pelegrino Date: Tue, 16 Sep 2025 16:24:31 -0300 Subject: [PATCH 10/10] docs: updates changeset with correct endpoint route --- .changeset/cool-pets-switch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/cool-pets-switch.md b/.changeset/cool-pets-switch.md index bbe3e93b215d9..38cadab03f70f 100644 --- a/.changeset/cool-pets-switch.md +++ b/.changeset/cool-pets-switch.md @@ -3,4 +3,4 @@ "@rocket.chat/rest-typings": patch --- -Adds deprecation warning on `livechat:removeCustomField` with new endpoint replacing it; `livechat/custom-fields.remove` +Adds deprecation warning on `livechat:removeCustomField` with new endpoint replacing it; `livechat/custom-fields.delete`