refactor: Remove `beforeDelegateAgent` callback (#35949)

pull/35957/head
Kevin Aleman 8 months ago committed by GitHub
parent cefafb0589
commit b9af4eac19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 25
      apps/meteor/app/livechat/server/hooks/beforeDelegateAgent.ts
  2. 1
      apps/meteor/app/livechat/server/index.ts
  3. 3
      apps/meteor/app/livechat/server/lib/QueueManager.ts
  4. 3
      apps/meteor/app/livechat/server/lib/RoutingManager.ts
  5. 22
      apps/meteor/app/livechat/server/lib/hooks.ts
  6. 2
      apps/meteor/lib/callbacks.ts

@ -1,25 +0,0 @@
import { LivechatDepartmentAgents, Users } from '@rocket.chat/models';
import { callbacks } from '../../../../lib/callbacks';
import { settings } from '../../../settings/server';
callbacks.add(
'livechat.beforeDelegateAgent',
async (agent, { department } = {}) => {
if (agent) {
return agent;
}
if (!settings.get('Livechat_assign_new_conversation_to_bot')) {
return null;
}
if (department) {
return LivechatDepartmentAgents.getNextBotForDepartment(department);
}
return Users.getNextBotAgent();
},
callbacks.priority.HIGH,
'livechat-before-delegate-agent',
);

@ -1,7 +1,6 @@
import './livechat';
import './startup';
import '../lib/messageTypes';
import './hooks/beforeDelegateAgent';
import './hooks/leadCapture';
import './hooks/markRoomResponded';
import './hooks/offlineMessage';

@ -23,6 +23,7 @@ import { createLivechatRoom, createLivechatInquiry, allowAgentSkipQueue, prepare
import { RoutingManager } from './RoutingManager';
import { isVerifiedChannelInSource } from './contacts/isVerifiedChannelInSource';
import { checkOnlineForDepartment } from './departmentsLib';
import { beforeDelegateAgent } from './hooks';
import { checkOnlineAgents, getOnlineAgents } from './service-status';
import { getInquirySortMechanismSetting } from './settings';
import { dispatchInquiryPosition } from '../../../../ee/app/livechat-enterprise/server/lib/Helper';
@ -295,7 +296,7 @@ export class QueueManager {
);
const defaultAgent =
(await callbacks.run('livechat.beforeDelegateAgent', agent, {
(await beforeDelegateAgent(agent, {
department: guest.department,
})) || undefined;

@ -28,6 +28,7 @@ import {
updateChatDepartment,
allowAgentSkipQueue,
} from './Helper';
import { beforeDelegateAgent } from './hooks';
import { callbacks } from '../../../../lib/callbacks';
import { notifyOnLivechatInquiryChangedById, notifyOnLivechatInquiryChanged } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
@ -301,7 +302,7 @@ export const RoutingManager: Routing = {
},
async delegateAgent(agent, inquiry) {
const defaultAgent = await callbacks.run('livechat.beforeDelegateAgent', agent, {
const defaultAgent = await beforeDelegateAgent(agent, {
department: inquiry?.department,
});

@ -1,11 +1,12 @@
import { ILivechatAgentStatus } from '@rocket.chat/core-typings';
import type { AtLeast, ILivechatDepartment, IOmnichannelSource, IUser, SelectedAgent } from '@rocket.chat/core-typings';
import { LivechatDepartmentAgents } from '@rocket.chat/models';
import { LivechatDepartmentAgents, Users } from '@rocket.chat/models';
import { makeFunction } from '@rocket.chat/patch-injection';
import { setUserStatusLivechat } from './utils';
import { callbacks } from '../../../../lib/callbacks';
import { notifyOnLivechatDepartmentAgentChangedByDepartmentId } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
export async function afterAgentUserActivated(user: IUser) {
if (!user.roles.includes('livechat-agent')) {
@ -43,3 +44,22 @@ export async function afterDepartmentUnarchived(department: AtLeast<ILivechatDep
export const checkDefaultAgentOnNewRoom = makeFunction(
async (defaultAgent?: SelectedAgent, _params?: { visitorId?: string; source?: IOmnichannelSource }) => defaultAgent,
);
export const beforeDelegateAgent = async (
agent: SelectedAgent | undefined,
{ department }: { department?: string } = {},
): Promise<SelectedAgent | null | undefined> => {
if (agent) {
return agent;
}
if (!settings.get('Livechat_assign_new_conversation_to_bot')) {
return null;
}
if (department) {
return LivechatDepartmentAgents.getNextBotForDepartment(department);
}
return Users.getNextBotAgent();
};

@ -13,7 +13,6 @@ import type {
Username,
IOmnichannelRoom,
ILivechatTag,
SelectedAgent,
InquiryWithAgentInfo,
ILivechatTagRecord,
TransferData,
@ -165,7 +164,6 @@ type ChainedCallbackSignatures = {
agentsId: ILivechatAgent['_id'][];
};
'livechat.applySimultaneousChatRestrictions': (_: undefined, params: { departmentId?: ILivechatDepartmentRecord['_id'] }) => undefined;
'livechat.beforeDelegateAgent': (agent: SelectedAgent | undefined, params?: { department?: string }) => SelectedAgent | null | undefined;
'livechat.applyDepartmentRestrictions': (
query: FilterOperators<ILivechatDepartmentRecord>,
params: { userId: IUser['_id'] },

Loading…
Cancel
Save