mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-01 19:42:27 +08:00
added field frm_configs to MerchantConnectorAccount (#831)
Co-authored-by: Arun Raj M <jarnura47@gmail.com>
This commit is contained in:
@ -309,6 +309,12 @@ pub async fn create_payment_connector(
|
||||
field_name: "connector_account_details".to_string(),
|
||||
expected_format: "auth_type and api_key".to_string(),
|
||||
})?;
|
||||
let configs_for_frm_value = req
|
||||
.frm_configs
|
||||
.ok_or_else(|| errors::ApiErrorResponse::ConfigNotFound)?;
|
||||
let frm_value: serde_json::Value =
|
||||
utils::Encode::<api_models::admin::FrmConfigs>::encode_to_value(&configs_for_frm_value)
|
||||
.change_context(errors::ApiErrorResponse::ConfigNotFound)?;
|
||||
|
||||
let merchant_connector_account = storage::MerchantConnectorAccountNew {
|
||||
merchant_id: Some(merchant_id.to_string()),
|
||||
@ -320,6 +326,7 @@ pub async fn create_payment_connector(
|
||||
test_mode: req.test_mode,
|
||||
disabled: req.disabled,
|
||||
metadata: req.metadata,
|
||||
frm_configs: Some(frm_value),
|
||||
};
|
||||
|
||||
let mca = store
|
||||
@ -419,7 +426,13 @@ pub async fn update_payment_connector(
|
||||
})
|
||||
.collect::<Vec<serde_json::Value>>()
|
||||
});
|
||||
|
||||
let configs_for_frm_value = req
|
||||
.frm_configs
|
||||
.as_ref()
|
||||
.ok_or_else(|| errors::ApiErrorResponse::ConfigNotFound)?;
|
||||
let frm_value: serde_json::Value =
|
||||
utils::Encode::<api_models::admin::FrmConfigs>::encode_to_value(&configs_for_frm_value)
|
||||
.change_context(errors::ApiErrorResponse::ConfigNotFound)?;
|
||||
let payment_connector = storage::MerchantConnectorAccountUpdate::Update {
|
||||
merchant_id: Some(merchant_id.to_string()),
|
||||
connector_type: Some(req.connector_type.foreign_into()),
|
||||
@ -430,6 +443,7 @@ pub async fn update_payment_connector(
|
||||
test_mode: req.test_mode,
|
||||
disabled: req.disabled,
|
||||
metadata: req.metadata,
|
||||
frm_configs: Some(frm_value),
|
||||
};
|
||||
|
||||
let updated_mca = db
|
||||
@ -460,6 +474,7 @@ pub async fn update_payment_connector(
|
||||
disabled: updated_mca.disabled,
|
||||
payment_methods_enabled: updated_pm_enabled,
|
||||
metadata: updated_mca.metadata,
|
||||
frm_configs: req.frm_configs,
|
||||
};
|
||||
Ok(service_api::ApplicationResponse::Json(response))
|
||||
}
|
||||
|
||||
@ -41,7 +41,6 @@ impl
|
||||
.await
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Feature<api::Authorize, types::PaymentsAuthorizeData> for types::PaymentsAuthorizeRouterData {
|
||||
async fn decide_flows<'a>(
|
||||
|
||||
@ -287,6 +287,7 @@ impl MerchantConnectorAccountInterface for MockDb {
|
||||
merchant_connector_id: t.merchant_connector_id,
|
||||
payment_methods_enabled: t.payment_methods_enabled,
|
||||
metadata: t.metadata,
|
||||
frm_configs: t.frm_configs,
|
||||
connector_type: t
|
||||
.connector_type
|
||||
.unwrap_or(crate::types::storage::enums::ConnectorType::FinOperations),
|
||||
|
||||
@ -341,6 +341,16 @@ impl ForeignTryFrom<storage::MerchantConnectorAccount> for api_models::admin::Me
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)?,
|
||||
None => None,
|
||||
};
|
||||
let configs_for_frm_value = merchant_ca
|
||||
.frm_configs
|
||||
.ok_or_else(|| errors::ApiErrorResponse::ConfigNotFound)?;
|
||||
let configs_for_frm : api_models::admin::FrmConfigs = configs_for_frm_value
|
||||
// .clone()
|
||||
.parse_value("FrmConfigs")
|
||||
.change_context(errors::ApiErrorResponse::InvalidDataFormat {
|
||||
field_name: "frm_configs".to_string(),
|
||||
expected_format: "\"frm_configs\" : { \"frm_enabled_pms\" : [\"card\"], \"frm_enabled_pm_types\" : [\"credit\"], \"frm_enabled_gateways\" : [\"stripe\"], \"frm_action\": \"cancel_txn\", \"frm_preferred_flow_type\" : \"pre\" }".to_string(),
|
||||
})?;
|
||||
|
||||
Ok(Self {
|
||||
connector_type: merchant_ca.connector_type.foreign_into(),
|
||||
@ -353,6 +363,7 @@ impl ForeignTryFrom<storage::MerchantConnectorAccount> for api_models::admin::Me
|
||||
disabled: merchant_ca.disabled,
|
||||
metadata: merchant_ca.metadata,
|
||||
payment_methods_enabled,
|
||||
frm_configs: Some(configs_for_frm),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user