Agentbot as assignee

This commit is contained in:
Pranav
2025-07-14 16:49:12 -07:00
parent 1132556512
commit e4dba113ce
8 changed files with 95 additions and 30 deletions
@@ -1,8 +1,8 @@
class Api::V1::Accounts::Conversations::AssignmentsController < Api::V1::Accounts::Conversations::BaseController
# assigns agent/team to a conversation
# assigns agent/team/bot to a conversation
def create
if params.key?(:assignee_id)
set_agent
set_assignee
elsif params.key?(:team_id)
set_team
else
@@ -12,18 +12,26 @@ class Api::V1::Accounts::Conversations::AssignmentsController < Api::V1::Account
private
def set_agent
@agent = Current.account.users.find_by(id: params[:assignee_id])
@conversation.assignee = @agent
def set_assignee
@assignee = case params[:assignee_type]
when 'AgentBot'
Current.account.agent_bots.find_by(id: params[:assignee_id])
else
Current.account.users.find_by(id: params[:assignee_id])
end
@conversation.assignee = @assignee
@conversation.save!
render_agent
render_assignee
end
def render_agent
if @agent.nil?
def render_assignee
if @assignee.nil?
render json: nil
elsif @assignee.is_a?(AgentBot)
render json: @assignee.webhook_data
else
render partial: 'api/v1/models/agent', formats: [:json], locals: { resource: @agent }
render partial: 'api/v1/models/agent', formats: [:json], locals: { resource: @assignee }
end
end