refactor(routing): add support to accept the saving_percentage in decision engine response (#8388)

This commit is contained in:
Shankar Singh C
2025-06-20 18:22:08 +05:30
committed by GitHub
parent c8b35dacb8
commit 639b92c133
2 changed files with 23 additions and 8 deletions

View File

@ -67,17 +67,32 @@ pub struct DecidedGateway {
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
pub struct DebitRoutingOutput {
pub co_badged_card_networks: Vec<common_enums::CardNetwork>,
pub co_badged_card_networks_info: Vec<CoBadgedCardNetworksInfo>,
pub issuer_country: common_enums::CountryAlpha2,
pub is_regulated: bool,
pub regulated_name: Option<common_enums::RegulatedName>,
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<common_enums::CardNetwork> {
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<common_enums::CardNetwork>,
pub co_badged_card_networks_info: Vec<common_enums::CardNetwork>,
pub issuer_country: common_enums::CountryAlpha2,
pub is_regulated: bool,
pub regulated_name: Option<common_enums::RegulatedName>,