mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +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()?,
|
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(
|
let filter4 = filter_pm_card_network_based(
|
||||||
payment_method_object.card_networks.as_ref(),
|
payment_method_object.card_networks.as_ref(),
|
||||||
req.card_networks.as_ref(),
|
req.card_networks.as_ref(),
|
||||||
|
&payment_method_object.payment_method_type,
|
||||||
);
|
);
|
||||||
|
|
||||||
let filter3 = if let Some(payment_intent) = payment_intent {
|
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(
|
fn filter_pm_card_network_based(
|
||||||
pm_card_networks: Option<&Vec<api_enums::CardNetwork>>,
|
pm_card_networks: Option<&Vec<api_enums::CardNetwork>>,
|
||||||
request_card_networks: Option<&Vec<api_enums::CardNetwork>>,
|
request_card_networks: Option<&Vec<api_enums::CardNetwork>>,
|
||||||
|
pm_type: &api_enums::PaymentMethodType,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
logger::debug!(pm_card_networks=?pm_card_networks);
|
logger::debug!(pm_card_networks=?pm_card_networks);
|
||||||
logger::debug!(request_card_networks=?request_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) {
|
match (pm_card_networks, request_card_networks) {
|
||||||
(Some(pm_card_networks), Some(request_card_networks)) => request_card_networks
|
(Some(pm_card_networks), Some(request_card_networks)) => request_card_networks
|
||||||
.iter()
|
.iter()
|
||||||
@ -808,6 +812,9 @@ fn filter_pm_card_network_based(
|
|||||||
_ => true,
|
_ => true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_ => true,
|
||||||
|
}
|
||||||
|
}
|
||||||
fn filter_pm_country_based(
|
fn filter_pm_country_based(
|
||||||
accepted_countries: &Option<admin::AcceptedCountries>,
|
accepted_countries: &Option<admin::AcceptedCountries>,
|
||||||
req_country_list: &Option<Vec<String>>,
|
req_country_list: &Option<Vec<String>>,
|
||||||
|
|||||||
Reference in New Issue
Block a user