From 11370316b281dbde33ba287104853d68968da492 Mon Sep 17 00:00:00 2001 From: Tanmay Deep Sharma Date: Thu, 31 Jul 2025 20:50:19 +0530 Subject: [PATCH] fix round robin assignment --- app/services/assignment_v2/assignment_service.rb | 4 ++-- .../auto_assignment/inbox_round_robin_service.rb | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/services/assignment_v2/assignment_service.rb b/app/services/assignment_v2/assignment_service.rb index 101431b6c..bb7260593 100644 --- a/app/services/assignment_v2/assignment_service.rb +++ b/app/services/assignment_v2/assignment_service.rb @@ -54,7 +54,7 @@ class AssignmentV2::AssignmentService def selector_service @selector_service ||= if policy.assignment_order == 'balanced' && enterprise_enabled? && policy.can_use_balanced_assignment? - Enterprise::AssignmentV2::BalancedSelector.new(inbox: inbox) + ::Enterprise::AssignmentV2::BalancedSelector.new(inbox: inbox) else AssignmentV2::RoundRobinSelector.new(inbox: inbox) end @@ -88,7 +88,7 @@ class AssignmentV2::AssignmentService def create_assignment_activity(conversation, agent) Rails.configuration.dispatcher.dispatch( - ASSIGNEE_CHANGED, + Events::Types::ASSIGNEE_CHANGED, Time.zone.now, conversation: conversation, user: agent diff --git a/app/services/auto_assignment/inbox_round_robin_service.rb b/app/services/auto_assignment/inbox_round_robin_service.rb index 7f5a5fb6c..911483893 100644 --- a/app/services/auto_assignment/inbox_round_robin_service.rb +++ b/app/services/auto_assignment/inbox_round_robin_service.rb @@ -18,7 +18,9 @@ class AutoAssignment::InboxRoundRobinService def reset_queue clear_queue - add_agent_to_queue(inbox.inbox_members.map(&:user_id)) + inbox.inbox_members.each do |member| + add_agent_to_queue(member.user_id) + end end # end of queue management functions @@ -27,8 +29,7 @@ class AutoAssignment::InboxRoundRobinService # the values of allowed member ids should be in string format def available_agent(allowed_agent_ids: []) reset_queue unless validate_queue? - user_id = get_member_from_allowed_agent_ids(allowed_agent_ids) - inbox.inbox_members.find_by(user_id: user_id)&.user if user_id.present? + get_member_from_allowed_agent_ids(allowed_agent_ids) end private @@ -49,7 +50,7 @@ class AutoAssignment::InboxRoundRobinService end def validate_queue? - return true if inbox.inbox_members.map(&:user_id).sort == queue.map(&:to_i).sort + inbox.inbox_members.map(&:user_id).map(&:to_s).sort == queue.sort end def queue