From 350fdd0fa0e0fe7f8e2e0cca36d553469b99f168 Mon Sep 17 00:00:00 2001 From: aakashb95 Date: Fri, 19 Dec 2025 13:58:45 +0530 Subject: [PATCH] fix: upsert instead of replace captain_models obj inside settings --- app/controllers/api/v1/accounts_controller.rb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index 9f2320465..33eb9c7f4 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -94,8 +94,15 @@ class Api::V1::AccountsController < Api::BaseController def settings_params permitted = params.permit(:auto_resolve_after, :auto_resolve_message, :auto_resolve_ignore_waiting, :audio_transcriptions, :auto_resolve_label, conversation_required_attributes: []) - permitted[:captain_models] = params[:captain_models].to_unsafe_h if params[:captain_models].present? - permitted[:captain_features] = params[:captain_features].to_unsafe_h if params[:captain_features].present? + + if params[:captain_models].present? + existing_models = @account.captain_models || {} + permitted[:captain_models] = existing_models.merge(params[:captain_models].to_unsafe_h) + end + if params[:captain_features].present? + existing_features = @account.captain_features || {} + permitted[:captain_features] = existing_features.merge(params[:captain_features].to_unsafe_h) + end permitted end