From c0d910f50ebe9cf387b08ecbdb86f2f60346c0cb Mon Sep 17 00:00:00 2001 From: Narayan Bhat <48803246+Narayanbhat166@users.noreply.github.com> Date: Tue, 6 Feb 2024 14:46:02 +0530 Subject: [PATCH] fix(merchant_connector_account): change error to DuplicateMerchantAccount (#3496) --- crates/router/src/core/admin.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/crates/router/src/core/admin.rs b/crates/router/src/core/admin.rs index 364c5b9b21..024ef653fa 100644 --- a/crates/router/src/core/admin.rs +++ b/crates/router/src/core/admin.rs @@ -1234,7 +1234,7 @@ pub async fn update_payment_connector( connector_type: Some(req.connector_type), connector_name: None, merchant_connector_id: None, - connector_label: req.connector_label, + connector_label: req.connector_label.clone(), connector_account_details: req .connector_account_details .async_lift(|inner| { @@ -1264,10 +1264,25 @@ pub async fn update_payment_connector( status: Some(connector_status), }; + // Profile id should always be present + let profile_id = mca + .profile_id + .clone() + .ok_or(errors::ApiErrorResponse::InternalServerError) + .into_report() + .attach_printable("Missing `profile_id` in merchant connector account")?; + + let request_connector_label = req.connector_label; + let updated_mca = db .update_merchant_connector_account(mca, payment_connector.into(), &key_store) .await - .change_context(errors::ApiErrorResponse::InternalServerError) + .change_context( + errors::ApiErrorResponse::DuplicateMerchantConnectorAccount { + profile_id, + connector_name: request_connector_label.unwrap_or_default(), + }, + ) .attach_printable_lazy(|| { format!("Failed while updating MerchantConnectorAccount: id: {merchant_connector_id}") })?;