Add support for persistent copilot messages and threads

This commit is contained in:
Pranav
2025-05-12 17:47:20 -07:00
parent 543dd1476d
commit 9e8ea5d2f8
16 changed files with 276 additions and 2 deletions
@@ -0,0 +1,25 @@
class Api::V1::Accounts::Captain::CopilotMessagesController < Api::V1::Accounts::BaseController
before_action :current_account
before_action -> { check_authorization(Captain::Assistant) }
before_action :set_copilot_thread
def index
@copilot_messages = @copilot_thread
.copilot_messages
.order(created_at: :asc)
.page(permitted_params[:page] || 1)
.per(1000)
end
private
def set_copilot_thread
@copilot_thread = Current.account.copilot_threads.find_by!(
uuid: params[:copilot_thread_id], user_id: Current.user.id
)
end
def permitted_params
params.permit(:page)
end
end
@@ -0,0 +1,19 @@
class Api::V1::Accounts::Captain::CopilotThreadsController < Api::V1::Accounts::BaseController
before_action :current_account
before_action -> { check_authorization(Captain::Assistant) }
def index
@copilot_threads = Current.account.copilot_threads
.where(user_id: Current.user.id)
.includes(:user)
.order(created_at: :desc)
.page(permitted_params[:page] || 1)
.per(5)
end
private
def permitted_params
params.permit(:page)
end
end
@@ -0,0 +1,8 @@
json.payload do
json.array! @copilot_messages do |message|
json.id message.id
json.message message.message
json.message_type message.message_type
json.created_at message.created_at.to_i
end
end
@@ -0,0 +1,12 @@
json.payload do
json.array! @copilot_threads do |thread|
json.id thread.id
json.title thread.title
json.uuid thread.uuid
json.created_at thread.created_at.to_i
json.user do
json.id thread.user.id
json.name thread.user.name
end
end
end