added field frm_configs to MerchantConnectorAccount (#831)

Co-authored-by: Arun Raj M <jarnura47@gmail.com>
This commit is contained in:
rishavkar
2023-04-06 17:12:20 +05:30
committed by GitHub
parent 11df843610
commit f26a632cdb
10 changed files with 84 additions and 2 deletions

View File

@ -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))
}

View File

@ -41,7 +41,6 @@ impl
.await
}
}
#[async_trait]
impl Feature<api::Authorize, types::PaymentsAuthorizeData> for types::PaymentsAuthorizeRouterData {
async fn decide_flows<'a>(

View File

@ -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),

View File

@ -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),
})
}
}