fix(list): fix card network filtering (#684)

This commit is contained in:
Nishant Joshi
2023-02-28 16:39:35 +05:30
committed by GitHub
parent 03096effcf
commit 718c8a423a
2 changed files with 16 additions and 5 deletions

View File

@ -343,6 +343,10 @@ impl<'de> serde::Deserialize<'de> for ListPaymentMethodRequest {
map.next_value()?,
)?;
}
"card_network" => match output.card_networks.as_mut() {
Some(inner) => inner.push(map.next_value()?),
None => output.card_networks = Some(vec![map.next_value()?]),
},
_ => {}
}
}

View File

@ -727,6 +727,7 @@ async fn filter_payment_methods(
let filter4 = filter_pm_card_network_based(
payment_method_object.card_networks.as_ref(),
req.card_networks.as_ref(),
&payment_method_object.payment_method_type,
);
let filter3 = if let Some(payment_intent) = payment_intent {
@ -797,9 +798,12 @@ fn filter_pm_based_on_config<'a>(
fn filter_pm_card_network_based(
pm_card_networks: Option<&Vec<api_enums::CardNetwork>>,
request_card_networks: Option<&Vec<api_enums::CardNetwork>>,
pm_type: &api_enums::PaymentMethodType,
) -> bool {
logger::debug!(pm_card_networks=?pm_card_networks);
logger::debug!(request_card_networks=?request_card_networks);
match pm_type {
api_enums::PaymentMethodType::Credit | api_enums::PaymentMethodType::Debit => {
match (pm_card_networks, request_card_networks) {
(Some(pm_card_networks), Some(request_card_networks)) => request_card_networks
.iter()
@ -808,6 +812,9 @@ fn filter_pm_card_network_based(
_ => true,
}
}
_ => true,
}
}
fn filter_pm_country_based(
accepted_countries: &Option<admin::AcceptedCountries>,
req_country_list: &Option<Vec<String>>,