chore: Use Round Robin service for team assignment (#4237)

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This commit is contained in:
Sojan Jose
2022-03-28 14:38:07 +05:30
committed by GitHub
parent e8bc30e3c6
commit 823c0ab6a7
6 changed files with 86 additions and 22 deletions

View File

@@ -1,9 +1,13 @@
class RoundRobin::AssignmentService
pattr_initialize [:conversation]
pattr_initialize [:conversation, { allowed_member_ids: [] }]
def find_assignee
round_robin_manage_service.available_agent(priority_list: online_agents)
end
def perform
# online agents will get priority
new_assignee = round_robin_manage_service.available_agent(priority_list: online_agents)
new_assignee = find_assignee
conversation.update(assignee: new_assignee) if new_assignee
end
@@ -15,7 +19,7 @@ class RoundRobin::AssignmentService
end
def round_robin_manage_service
@round_robin_manage_service ||= RoundRobin::ManageService.new(inbox: conversation.inbox)
@round_robin_manage_service ||= RoundRobin::ManageService.new(inbox: conversation.inbox, allowed_member_ids: allowed_member_ids)
end
def round_robin_key