diff --git a/crates/api_models/src/admin.rs b/crates/api_models/src/admin.rs index 1944403fbe..f2ef1a1784 100644 --- a/crates/api_models/src/admin.rs +++ b/crates/api_models/src/admin.rs @@ -134,7 +134,7 @@ pub struct MerchantAccountUpdate { pub locker_id: Option, ///Default business details for connector routing - pub primary_business_details: Option, + pub primary_business_details: Option>, } #[derive(Clone, Debug, ToSchema, Serialize)] diff --git a/crates/router/src/core/admin.rs b/crates/router/src/core/admin.rs index 2395308874..1e4859ddb8 100644 --- a/crates/router/src/core/admin.rs +++ b/crates/router/src/core/admin.rs @@ -89,11 +89,12 @@ pub async fn create_merchant_account( .attach_printable("Unexpected create API key response"), }?; - let primary_business_details = - utils::Encode::::encode_to_value(&get_primary_business_details(&req)) - .change_context(errors::ApiErrorResponse::InvalidDataValue { - field_name: "primary_business_details", - })?; + let primary_business_details = utils::Encode::>::encode_to_value( + &get_primary_business_details(&req), + ) + .change_context(errors::ApiErrorResponse::InvalidDataValue { + field_name: "primary_business_details", + })?; let merchant_details = req.merchant_details @@ -214,6 +215,17 @@ pub async fn merchant_account_update( .attach_printable("Invalid routing algorithm given")?; } + let primary_business_details = req + .primary_business_details + .as_ref() + .map(|primary_business_details| { + utils::Encode::>::encode_to_value(primary_business_details) + .change_context(errors::ApiErrorResponse::InvalidDataValue { + field_name: "primary_business_details", + }) + }) + .transpose()?; + let updated_merchant_account = storage::MerchantAccountUpdate::Update { merchant_name: req.merchant_name, @@ -248,12 +260,7 @@ pub async fn merchant_account_update( locker_id: req.locker_id, metadata: req.metadata, publishable_key: None, - primary_business_details: req - .primary_business_details - .as_ref() - .map(utils::Encode::::encode_to_value) - .transpose() - .change_context(errors::ApiErrorResponse::InternalServerError)?, + primary_business_details, }; let response = db