From 9a8342642f8519210f996bc581ca822313f9af9b Mon Sep 17 00:00:00 2001 From: Abhinav Kumar <abhinav@avitechlab.com> Date: Thu, 10 Oct 2024 01:48:34 +0530 Subject: [PATCH] chore!: remove deprecated livechat:setCustomField method (#33444) --- .changeset/nice-vans-design.md | 5 ++++ .../app/livechat/imports/server/rest/sms.ts | 11 +++---- .../livechat/server/api/lib/customFields.ts | 20 ++++++++++++- apps/meteor/app/livechat/server/index.ts | 1 - .../livechat/server/methods/setCustomField.ts | 30 ------------------- 5 files changed, 30 insertions(+), 37 deletions(-) create mode 100644 .changeset/nice-vans-design.md delete mode 100644 apps/meteor/app/livechat/server/methods/setCustomField.ts diff --git a/.changeset/nice-vans-design.md b/.changeset/nice-vans-design.md new file mode 100644 index 00000000000..42070f39cc8 --- /dev/null +++ b/.changeset/nice-vans-design.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/meteor': major +--- + +Removes deprecated method `livechat:setCustomField`. The custom fields can be directly set via the `livechat/visitor` endpoint. diff --git a/apps/meteor/app/livechat/imports/server/rest/sms.ts b/apps/meteor/app/livechat/imports/server/rest/sms.ts index 2fe3ce40eed..15f08cdc1e8 100644 --- a/apps/meteor/app/livechat/imports/server/rest/sms.ts +++ b/apps/meteor/app/livechat/imports/server/rest/sms.ts @@ -19,6 +19,7 @@ import { API } from '../../../../api/server'; import { FileUpload } from '../../../../file-upload/server'; import { checkUrlForSsrf } from '../../../../lib/server/functions/checkUrlForSsrf'; import { settings } from '../../../../settings/server'; +import { setCustomField } from '../../../server/api/lib/customFields'; import type { ILivechatMessage } from '../../../server/lib/LivechatTyped'; import { Livechat as LivechatTyped } from '../../../server/lib/LivechatTyped'; @@ -267,16 +268,16 @@ API.v1.addRoute('livechat/sms-incoming/:service', { setImmediate(async () => { if (sms.extra) { if (sms.extra.fromCountry) { - await Meteor.callAsync('livechat:setCustomField', sendMessage.message.token, 'country', sms.extra.fromCountry); + await setCustomField(sendMessage.message.token, 'country', sms.extra.fromCountry); } if (sms.extra.fromState) { - await Meteor.callAsync('livechat:setCustomField', sendMessage.message.token, 'state', sms.extra.fromState); + await setCustomField(sendMessage.message.token, 'state', sms.extra.fromState); } if (sms.extra.fromCity) { - await Meteor.callAsync('livechat:setCustomField', sendMessage.message.token, 'city', sms.extra.fromCity); + await setCustomField(sendMessage.message.token, 'city', sms.extra.fromCity); } - if (sms.extra.toPhone) { - await Meteor.callAsync('livechat:setCustomField', sendMessage.message.token, 'phoneNumber', sms.extra.toPhone); + if (sms.extra.fromZip) { + await setCustomField(sendMessage.message.token, 'zip', sms.extra.fromZip); } } }); diff --git a/apps/meteor/app/livechat/server/api/lib/customFields.ts b/apps/meteor/app/livechat/server/api/lib/customFields.ts index 0a9213f99f9..8b1d459b2d8 100644 --- a/apps/meteor/app/livechat/server/api/lib/customFields.ts +++ b/apps/meteor/app/livechat/server/api/lib/customFields.ts @@ -1,7 +1,8 @@ import type { ILivechatCustomField } from '@rocket.chat/core-typings'; -import { LivechatCustomField } from '@rocket.chat/models'; +import { LivechatCustomField, LivechatVisitors, LivechatRooms } from '@rocket.chat/models'; import type { PaginatedResult } from '@rocket.chat/rest-typings'; import { escapeRegExp } from '@rocket.chat/string-helpers'; +import type { UpdateResult, Document } from 'mongodb'; export async function findLivechatCustomFields({ text, @@ -41,3 +42,20 @@ export async function findCustomFieldById({ customField: await LivechatCustomField.findOneById(customFieldId), }; } + +export async function setCustomField( + token: string, + key: string, + value: string, + overwrite = true, +): Promise<boolean | UpdateResult | Document> { + const customField = await LivechatCustomField.findOneById(key); + if (customField) { + if (customField.scope === 'room') { + return LivechatRooms.updateDataByToken(token, key, value, overwrite); + } + return LivechatVisitors.updateLivechatDataByToken(token, key, value, overwrite); + } + + return true; +} diff --git a/apps/meteor/app/livechat/server/index.ts b/apps/meteor/app/livechat/server/index.ts index 4e78811505d..35d27dbae12 100644 --- a/apps/meteor/app/livechat/server/index.ts +++ b/apps/meteor/app/livechat/server/index.ts @@ -37,7 +37,6 @@ import './methods/saveIntegration'; import './methods/saveTrigger'; import './methods/sendMessageLivechat'; import './methods/sendFileLivechatMessage'; -import './methods/setCustomField'; import './methods/setDepartmentForVisitor'; import './methods/transfer'; import './methods/setUpConnection'; diff --git a/apps/meteor/app/livechat/server/methods/setCustomField.ts b/apps/meteor/app/livechat/server/methods/setCustomField.ts deleted file mode 100644 index 6d3a2384cdd..00000000000 --- a/apps/meteor/app/livechat/server/methods/setCustomField.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { ServerMethods } from '@rocket.chat/ddp-client'; -import { LivechatVisitors, LivechatCustomField, LivechatRooms } from '@rocket.chat/models'; -import { Meteor } from 'meteor/meteor'; -import type { UpdateResult, Document } from 'mongodb'; - -import { methodDeprecationLogger } from '../../../lib/server/lib/deprecationWarningLogger'; - -declare module '@rocket.chat/ddp-client' { - // eslint-disable-next-line @typescript-eslint/naming-convention - interface ServerMethods { - 'livechat:setCustomField'(token: string, key: string, value: string, overwrite?: boolean): Promise<boolean | UpdateResult | Document>; - } -} - -Meteor.methods<ServerMethods>({ - async 'livechat:setCustomField'(token, key, value, overwrite = true) { - methodDeprecationLogger.method('livechat:setCustomField', '7.0.0'); - - const customField = await LivechatCustomField.findOneById(key); - if (customField) { - if (customField.scope === 'room') { - return LivechatRooms.updateDataByToken(token, key, value, overwrite); - } - // Save in user - return LivechatVisitors.updateLivechatDataByToken(token, key, value, overwrite); - } - - return true; - }, -}); -- GitLab