fix: Assign agent action changes (#5827)
This commit is contained in:
@@ -5,7 +5,7 @@ export default {
|
||||
case 'assign_team':
|
||||
case 'send_email_to_team':
|
||||
return this.teams;
|
||||
case 'assign_best_agent':
|
||||
case 'assign_agent':
|
||||
return this.agents;
|
||||
case 'add_label':
|
||||
return this.labels.map(i => {
|
||||
|
||||
@@ -36,7 +36,7 @@ describe('webhookMixin', () => {
|
||||
expect(wrapper.vm.getDropdownValues('assign_team')).toEqual(teams);
|
||||
expect(wrapper.vm.getDropdownValues('send_email_to_team')).toEqual(teams);
|
||||
expect(wrapper.vm.getDropdownValues('add_label')).toEqual(resolvedLabels);
|
||||
expect(wrapper.vm.getDropdownValues('assign_best_agent')).toEqual(agents);
|
||||
expect(wrapper.vm.getDropdownValues('assign_agent')).toEqual(agents);
|
||||
expect(wrapper.vm.getDropdownValues()).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -49,7 +49,7 @@ export default {
|
||||
const actionsMap = {
|
||||
assign_team: resolveTeamIds(this.teams, params),
|
||||
add_label: resolveLabels(this.labels, params),
|
||||
assign_best_agent: resolveAgents(this.agents, params),
|
||||
assign_agent: resolveAgents(this.agents, params),
|
||||
mute_conversation: null,
|
||||
snooze_conversation: null,
|
||||
resolve_conversation: null,
|
||||
|
||||
@@ -5,7 +5,7 @@ export const MACRO_ACTION_TYPES = [
|
||||
inputType: 'search_select',
|
||||
},
|
||||
{
|
||||
key: 'assign_best_agent',
|
||||
key: 'assign_agent',
|
||||
label: 'Assign an agent',
|
||||
inputType: 'search_select',
|
||||
},
|
||||
|
||||
@@ -30,7 +30,7 @@ class AutomationRule < ApplicationRecord
|
||||
scope :active, -> { where(active: true) }
|
||||
|
||||
CONDITIONS_ATTRS = %w[content email country_code status message_type browser_language assignee_id team_id referer city company inbox_id].freeze
|
||||
ACTIONS_ATTRS = %w[send_message add_label send_email_to_team assign_team assign_best_agent send_webhook_event mute_conversation send_attachment
|
||||
ACTIONS_ATTRS = %w[send_message add_label send_email_to_team assign_team assign_agent send_webhook_event mute_conversation send_attachment
|
||||
change_status resolve_conversation snooze_conversation send_email_transcript].freeze
|
||||
|
||||
def file_base_data
|
||||
|
||||
@@ -30,7 +30,7 @@ class Macro < ApplicationRecord
|
||||
|
||||
validate :json_actions_format
|
||||
|
||||
ACTIONS_ATTRS = %w[send_message add_label assign_team assign_best_agent mute_conversation change_status
|
||||
ACTIONS_ATTRS = %w[send_message add_label assign_team assign_agent mute_conversation change_status
|
||||
resolve_conversation snooze_conversation send_email_transcript send_attachment add_private_note].freeze
|
||||
|
||||
def set_visibility(user, params)
|
||||
|
||||
@@ -25,8 +25,8 @@ class ActionService
|
||||
@conversation.reload.add_labels(labels)
|
||||
end
|
||||
|
||||
def assign_best_agent(agent_ids = [])
|
||||
return unless agent_belongs_to_account?(agent_ids)
|
||||
def assign_agent(agent_ids = [])
|
||||
return unless agent_belongs_to_inbox?(agent_ids)
|
||||
|
||||
@agent = @account.users.find_by(id: agent_ids)
|
||||
|
||||
@@ -47,8 +47,11 @@ class ActionService
|
||||
|
||||
private
|
||||
|
||||
def agent_belongs_to_account?(agent_ids)
|
||||
@account.agents.pluck(:id).include?(agent_ids[0])
|
||||
def agent_belongs_to_inbox?(agent_ids)
|
||||
member_ids = @conversation.inbox.members.pluck(:user_id)
|
||||
assignable_agent_ids = member_ids + @account.administrators.ids
|
||||
|
||||
assignable_agent_ids.include?(agent_ids[0])
|
||||
end
|
||||
|
||||
def team_belongs_to_account?(team_ids)
|
||||
|
||||
Reference in New Issue
Block a user