diff --git a/crates/api_models/src/open_router.rs b/crates/api_models/src/open_router.rs index bec1f14fef..ba53f4c1f0 100644 --- a/crates/api_models/src/open_router.rs +++ b/crates/api_models/src/open_router.rs @@ -67,17 +67,32 @@ pub struct DecidedGateway { #[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] pub struct DebitRoutingOutput { - pub co_badged_card_networks: Vec, + pub co_badged_card_networks_info: Vec, pub issuer_country: common_enums::CountryAlpha2, pub is_regulated: bool, pub regulated_name: Option, pub card_type: common_enums::CardType, } +#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)] +pub struct CoBadgedCardNetworksInfo { + pub network: common_enums::CardNetwork, + pub saving_percentage: f64, +} + +impl DebitRoutingOutput { + pub fn get_co_badged_card_networks(&self) -> Vec { + self.co_badged_card_networks_info + .iter() + .map(|data| data.network.clone()) + .collect() + } +} + impl From<&DebitRoutingOutput> for payment_methods::CoBadgedCardData { fn from(output: &DebitRoutingOutput) -> Self { Self { - co_badged_card_networks: output.co_badged_card_networks.clone(), + co_badged_card_networks: output.get_co_badged_card_networks(), issuer_country_code: output.issuer_country, is_regulated: output.is_regulated, regulated_name: output.regulated_name.clone(), @@ -96,7 +111,7 @@ impl TryFrom<(payment_methods::CoBadgedCardData, String)> for DebitRoutingReques })?; Ok(Self { - co_badged_card_networks: output.co_badged_card_networks, + co_badged_card_networks_info: output.co_badged_card_networks, issuer_country: output.issuer_country_code, is_regulated: output.is_regulated, regulated_name: output.regulated_name, @@ -114,7 +129,7 @@ pub struct CoBadgedCardRequest { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct DebitRoutingRequestData { - pub co_badged_card_networks: Vec, + pub co_badged_card_networks_info: Vec, pub issuer_country: common_enums::CountryAlpha2, pub is_regulated: bool, pub regulated_name: Option, diff --git a/crates/router/src/core/debit_routing.rs b/crates/router/src/core/debit_routing.rs index c7de440bbf..ca03f5d253 100644 --- a/crates/router/src/core/debit_routing.rs +++ b/crates/router/src/core/debit_routing.rs @@ -256,8 +256,8 @@ where get_debit_routing_output::(state, payment_data, acquirer_country).await?; logger::debug!( - "Sorted co-badged networks: {:?}", - debit_routing_output.co_badged_card_networks + "Sorted co-badged networks info: {:?}", + debit_routing_output.co_badged_card_networks_info ); let key_store = db @@ -281,7 +281,7 @@ where &profile_id, &key_store, vec![connector_data.clone()], - debit_routing_output.co_badged_card_networks.clone(), + debit_routing_output.get_co_badged_card_networks(), ) .await .map_err(|error| { @@ -455,7 +455,7 @@ where &profile_id, &key_store, connector_data_list.clone(), - debit_routing_output.co_badged_card_networks.clone(), + debit_routing_output.get_co_badged_card_networks(), ) .await .map_err(|error| {