From c1044a8b66ac797ae7b4c5d3e71dea2a05b0d20d Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 27 May 2025 14:42:30 +0530 Subject: [PATCH] fix: accept json directly --- .../v1/accounts/captain/copilot_threads_controller.rb | 6 +++--- .../captain/copilot_threads_controller_spec.rb | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/enterprise/app/controllers/api/v1/accounts/captain/copilot_threads_controller.rb b/enterprise/app/controllers/api/v1/accounts/captain/copilot_threads_controller.rb index 482acd7e7..557244216 100644 --- a/enterprise/app/controllers/api/v1/accounts/captain/copilot_threads_controller.rb +++ b/enterprise/app/controllers/api/v1/accounts/captain/copilot_threads_controller.rb @@ -13,7 +13,7 @@ class Api::V1::Accounts::Captain::CopilotThreadsController < Api::V1::Accounts:: def create ActiveRecord::Base.transaction do @copilot_thread = Current.account.copilot_threads.create!( - title: copilot_thread_params[:message], + title: copilot_thread_params[:message][:content], user: Current.user, assistant: assistant ) @@ -25,7 +25,7 @@ class Api::V1::Accounts::Captain::CopilotThreadsController < Api::V1::Accounts:: private def ensure_message - return render_could_not_create_error('Message is required') if copilot_thread_params[:message].blank? + return render_could_not_create_error('Message is required') if copilot_thread_params[:message][:content].blank? end def assistant @@ -33,7 +33,7 @@ class Api::V1::Accounts::Captain::CopilotThreadsController < Api::V1::Accounts:: end def copilot_thread_params - params.permit(:message, :assistant_id) + params.permit(:assistant_id, message: [:content]) end def permitted_params diff --git a/spec/enterprise/controllers/api/v1/accounts/captain/copilot_threads_controller_spec.rb b/spec/enterprise/controllers/api/v1/accounts/captain/copilot_threads_controller_spec.rb index 748c3adf6..b6723892a 100644 --- a/spec/enterprise/controllers/api/v1/accounts/captain/copilot_threads_controller_spec.rb +++ b/spec/enterprise/controllers/api/v1/accounts/captain/copilot_threads_controller_spec.rb @@ -50,7 +50,7 @@ RSpec.describe 'Api::V1::Accounts::Captain::CopilotThreads', type: :request do describe 'POST /api/v1/accounts/{account.id}/captain/copilot_threads' do let(:assistant) { create(:captain_assistant, account: account) } - let(:valid_params) { { message: 'Hello, how can you help me?', assistant_id: assistant.id } } + let(:valid_params) { { message: { content: 'Hello, how can you help me?' }, assistant_id: assistant.id } } context 'when it is an un-authenticated user' do it 'returns unauthorized' do @@ -66,7 +66,7 @@ RSpec.describe 'Api::V1::Accounts::Captain::CopilotThreads', type: :request do context 'with invalid params' do it 'returns error when message is blank' do post "/api/v1/accounts/#{account.id}/captain/copilot_threads", - params: { message: '', assistant_id: assistant.id }, + params: { message: { content: '' }, assistant_id: assistant.id }, headers: agent.create_new_auth_token, as: :json @@ -76,7 +76,7 @@ RSpec.describe 'Api::V1::Accounts::Captain::CopilotThreads', type: :request do it 'returns error when assistant_id is invalid' do post "/api/v1/accounts/#{account.id}/captain/copilot_threads", - params: { message: 'Hello', assistant_id: 0 }, + params: { message: { content: 'Hello' }, assistant_id: 0 }, headers: agent.create_new_auth_token, as: :json @@ -97,13 +97,13 @@ RSpec.describe 'Api::V1::Accounts::Captain::CopilotThreads', type: :request do expect(response).to have_http_status(:success) thread = CopilotThread.last - expect(thread.title).to eq(valid_params[:message]) + expect(thread.title).to eq(valid_params[:message][:content]) expect(thread.user_id).to eq(agent.id) expect(thread.assistant_id).to eq(assistant.id) message = thread.copilot_messages.last expect(message.message_type).to eq('user') - expect(message.message).to eq(valid_params[:message]) + expect(message.message).to eq(valid_params[:message].stringify_keys) end end end