Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions app/livechat/server/lib/QueueManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,14 @@ export const QueueManager = {
}

inquiry = await callbacks.run('livechat.beforeRouteChat', inquiry, agent);
if (inquiry.status !== 'ready') {
if (inquiry.status === 'ready') {
return RoutingManager.delegateInquiry(inquiry, agent);
}

if (inquiry.status === 'queued') {
Meteor.defer(() => callbacks.run('livechat.chatQueued', room));
return room;
}

return RoutingManager.delegateInquiry(inquiry, agent);
return room;
},
};
3 changes: 3 additions & 0 deletions app/livechat/server/lib/routing/ManualSelection.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Livechat } from '../Livechat';
import { RoutingManager } from '../RoutingManager';
import { sendNotification } from '../../../../lib/server';
import { LivechatRooms, LivechatInquiry, Users } from '../../../../models/server';
import { callbacks } from '../../../../callbacks/server';

/* Manual Selection Queuing Method:
*
Expand Down Expand Up @@ -82,6 +83,8 @@ class ManualSelection {
});
});

Meteor.defer(() => callbacks.run('livechat.chatQueued', room));

return agent;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ callbacks.add('livechat.beforeRouteChat', async (inquiry) => {
dispatchInquiryPosition(inq);
}

checkWaitingQueue(department);
await checkWaitingQueue(department);

return LivechatInquiry.findOneById(_id);
}, callbacks.priority.HIGH, 'livechat-before-routing-chat');
4 changes: 2 additions & 2 deletions ee/app/livechat-enterprise/server/lib/Helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ const processWaitingQueue = async (department) => {
await dispatchWaitingQueueStatus(departmentId);
};

export const checkWaitingQueue = (department) => {
export const checkWaitingQueue = async (department) => {
if (!settings.get('Livechat_waiting_queue')) {
return;
}
Expand All @@ -128,7 +128,7 @@ export const checkWaitingQueue = (department) => {
return processWaitingQueue();
}

departments.forEach((department) => processWaitingQueue(department));
return Promise.all(departments.forEach((department) => processWaitingQueue(department)));
};

export const allowAgentSkipQueue = (agent) => {
Expand Down