Skip to content
Snippets Groups Projects
Commit 9a834264 authored by Abhinav Kumar's avatar Abhinav Kumar Committed by Guilherme Gazzo
Browse files

chore!: remove deprecated livechat:setCustomField method (#33444)

parent 962536f2
No related branches found
No related tags found
No related merge requests found
---
'@rocket.chat/meteor': major
---
Removes deprecated method `livechat:setCustomField`. The custom fields can be directly set via the `livechat/visitor` endpoint.
...@@ -19,6 +19,7 @@ import { API } from '../../../../api/server'; ...@@ -19,6 +19,7 @@ import { API } from '../../../../api/server';
import { FileUpload } from '../../../../file-upload/server'; import { FileUpload } from '../../../../file-upload/server';
import { checkUrlForSsrf } from '../../../../lib/server/functions/checkUrlForSsrf'; import { checkUrlForSsrf } from '../../../../lib/server/functions/checkUrlForSsrf';
import { settings } from '../../../../settings/server'; import { settings } from '../../../../settings/server';
import { setCustomField } from '../../../server/api/lib/customFields';
import type { ILivechatMessage } from '../../../server/lib/LivechatTyped'; import type { ILivechatMessage } from '../../../server/lib/LivechatTyped';
import { Livechat as LivechatTyped } from '../../../server/lib/LivechatTyped'; import { Livechat as LivechatTyped } from '../../../server/lib/LivechatTyped';
...@@ -267,16 +268,16 @@ API.v1.addRoute('livechat/sms-incoming/:service', { ...@@ -267,16 +268,16 @@ API.v1.addRoute('livechat/sms-incoming/:service', {
setImmediate(async () => { setImmediate(async () => {
if (sms.extra) { if (sms.extra) {
if (sms.extra.fromCountry) { 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) { 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) { 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) { if (sms.extra.fromZip) {
await Meteor.callAsync('livechat:setCustomField', sendMessage.message.token, 'phoneNumber', sms.extra.toPhone); await setCustomField(sendMessage.message.token, 'zip', sms.extra.fromZip);
} }
} }
}); });
......
import type { ILivechatCustomField } from '@rocket.chat/core-typings'; 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 type { PaginatedResult } from '@rocket.chat/rest-typings';
import { escapeRegExp } from '@rocket.chat/string-helpers'; import { escapeRegExp } from '@rocket.chat/string-helpers';
import type { UpdateResult, Document } from 'mongodb';
export async function findLivechatCustomFields({ export async function findLivechatCustomFields({
text, text,
...@@ -41,3 +42,20 @@ export async function findCustomFieldById({ ...@@ -41,3 +42,20 @@ export async function findCustomFieldById({
customField: await LivechatCustomField.findOneById(customFieldId), 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;
}
...@@ -37,7 +37,6 @@ import './methods/saveIntegration'; ...@@ -37,7 +37,6 @@ import './methods/saveIntegration';
import './methods/saveTrigger'; import './methods/saveTrigger';
import './methods/sendMessageLivechat'; import './methods/sendMessageLivechat';
import './methods/sendFileLivechatMessage'; import './methods/sendFileLivechatMessage';
import './methods/setCustomField';
import './methods/setDepartmentForVisitor'; import './methods/setDepartmentForVisitor';
import './methods/transfer'; import './methods/transfer';
import './methods/setUpConnection'; import './methods/setUpConnection';
......
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;
},
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment