mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 09:07:09 +08:00
fix(list): fix card network filtering (#684)
This commit is contained in:
@ -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()?]),
|
||||
},
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>>,
|
||||
|
||||
Reference in New Issue
Block a user