mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 09:07:09 +08:00
refactor(connector): [Adyen] Change country and issuer type to Optional for OpenBankingUk (#2993)
Co-authored-by: Arjun Karthik <m.arjunkarthik@gmail.com> Co-authored-by: Prasunna Soppa <70575890+prasunna09@users.noreply.github.com>
This commit is contained in:
@ -1204,10 +1204,10 @@ pub enum BankRedirectData {
|
|||||||
OpenBankingUk {
|
OpenBankingUk {
|
||||||
// Issuer banks
|
// Issuer banks
|
||||||
#[schema(value_type = BankNames)]
|
#[schema(value_type = BankNames)]
|
||||||
issuer: api_enums::BankNames,
|
issuer: Option<api_enums::BankNames>,
|
||||||
/// The country for bank payment
|
/// The country for bank payment
|
||||||
#[schema(value_type = CountryAlpha2, example = "US")]
|
#[schema(value_type = CountryAlpha2, example = "US")]
|
||||||
country: api_enums::CountryAlpha2,
|
country: Option<api_enums::CountryAlpha2>,
|
||||||
},
|
},
|
||||||
Przelewy24 {
|
Przelewy24 {
|
||||||
//Issuer banks
|
//Issuer banks
|
||||||
|
|||||||
@ -879,7 +879,126 @@ impl TryFrom<&api_enums::BankNames> for OpenBankingUKIssuer {
|
|||||||
api::enums::BankNames::TsbBank => Ok(Self::TsbBank),
|
api::enums::BankNames::TsbBank => Ok(Self::TsbBank),
|
||||||
api::enums::BankNames::TescoBank => Ok(Self::TescoBank),
|
api::enums::BankNames::TescoBank => Ok(Self::TescoBank),
|
||||||
api::enums::BankNames::UlsterBank => Ok(Self::UlsterBank),
|
api::enums::BankNames::UlsterBank => Ok(Self::UlsterBank),
|
||||||
_ => Err(errors::ConnectorError::NotSupported {
|
enums::BankNames::AmericanExpress
|
||||||
|
| enums::BankNames::AffinBank
|
||||||
|
| enums::BankNames::AgroBank
|
||||||
|
| enums::BankNames::AllianceBank
|
||||||
|
| enums::BankNames::AmBank
|
||||||
|
| enums::BankNames::BankOfAmerica
|
||||||
|
| enums::BankNames::BankIslam
|
||||||
|
| enums::BankNames::BankMuamalat
|
||||||
|
| enums::BankNames::BankRakyat
|
||||||
|
| enums::BankNames::BankSimpananNasional
|
||||||
|
| enums::BankNames::BlikPSP
|
||||||
|
| enums::BankNames::CapitalOne
|
||||||
|
| enums::BankNames::Chase
|
||||||
|
| enums::BankNames::Citi
|
||||||
|
| enums::BankNames::CimbBank
|
||||||
|
| enums::BankNames::Discover
|
||||||
|
| enums::BankNames::NavyFederalCreditUnion
|
||||||
|
| enums::BankNames::PentagonFederalCreditUnion
|
||||||
|
| enums::BankNames::SynchronyBank
|
||||||
|
| enums::BankNames::WellsFargo
|
||||||
|
| enums::BankNames::AbnAmro
|
||||||
|
| enums::BankNames::AsnBank
|
||||||
|
| enums::BankNames::Bunq
|
||||||
|
| enums::BankNames::Handelsbanken
|
||||||
|
| enums::BankNames::HongLeongBank
|
||||||
|
| enums::BankNames::Ing
|
||||||
|
| enums::BankNames::Knab
|
||||||
|
| enums::BankNames::KuwaitFinanceHouse
|
||||||
|
| enums::BankNames::Moneyou
|
||||||
|
| enums::BankNames::Rabobank
|
||||||
|
| enums::BankNames::Regiobank
|
||||||
|
| enums::BankNames::SnsBank
|
||||||
|
| enums::BankNames::TriodosBank
|
||||||
|
| enums::BankNames::VanLanschot
|
||||||
|
| enums::BankNames::ArzteUndApothekerBank
|
||||||
|
| enums::BankNames::AustrianAnadiBankAg
|
||||||
|
| enums::BankNames::BankAustria
|
||||||
|
| enums::BankNames::Bank99Ag
|
||||||
|
| enums::BankNames::BankhausCarlSpangler
|
||||||
|
| enums::BankNames::BankhausSchelhammerUndSchatteraAg
|
||||||
|
| enums::BankNames::BankMillennium
|
||||||
|
| enums::BankNames::BankPEKAOSA
|
||||||
|
| enums::BankNames::BawagPskAg
|
||||||
|
| enums::BankNames::BksBankAg
|
||||||
|
| enums::BankNames::BrullKallmusBankAg
|
||||||
|
| enums::BankNames::BtvVierLanderBank
|
||||||
|
| enums::BankNames::CapitalBankGraweGruppeAg
|
||||||
|
| enums::BankNames::CeskaSporitelna
|
||||||
|
| enums::BankNames::Dolomitenbank
|
||||||
|
| enums::BankNames::EasybankAg
|
||||||
|
| enums::BankNames::EPlatbyVUB
|
||||||
|
| enums::BankNames::ErsteBankUndSparkassen
|
||||||
|
| enums::BankNames::FrieslandBank
|
||||||
|
| enums::BankNames::HypoAlpeadriabankInternationalAg
|
||||||
|
| enums::BankNames::HypoNoeLbFurNiederosterreichUWien
|
||||||
|
| enums::BankNames::HypoOberosterreichSalzburgSteiermark
|
||||||
|
| enums::BankNames::HypoTirolBankAg
|
||||||
|
| enums::BankNames::HypoVorarlbergBankAg
|
||||||
|
| enums::BankNames::HypoBankBurgenlandAktiengesellschaft
|
||||||
|
| enums::BankNames::KomercniBanka
|
||||||
|
| enums::BankNames::MBank
|
||||||
|
| enums::BankNames::MarchfelderBank
|
||||||
|
| enums::BankNames::Maybank
|
||||||
|
| enums::BankNames::OberbankAg
|
||||||
|
| enums::BankNames::OsterreichischeArzteUndApothekerbank
|
||||||
|
| enums::BankNames::OcbcBank
|
||||||
|
| enums::BankNames::PayWithING
|
||||||
|
| enums::BankNames::PlaceZIPKO
|
||||||
|
| enums::BankNames::PlatnoscOnlineKartaPlatnicza
|
||||||
|
| enums::BankNames::PosojilnicaBankEGen
|
||||||
|
| enums::BankNames::PostovaBanka
|
||||||
|
| enums::BankNames::PublicBank
|
||||||
|
| enums::BankNames::RaiffeisenBankengruppeOsterreich
|
||||||
|
| enums::BankNames::RhbBank
|
||||||
|
| enums::BankNames::SchelhammerCapitalBankAg
|
||||||
|
| enums::BankNames::StandardCharteredBank
|
||||||
|
| enums::BankNames::SchoellerbankAg
|
||||||
|
| enums::BankNames::SpardaBankWien
|
||||||
|
| enums::BankNames::SporoPay
|
||||||
|
| enums::BankNames::TatraPay
|
||||||
|
| enums::BankNames::Viamo
|
||||||
|
| enums::BankNames::VolksbankGruppe
|
||||||
|
| enums::BankNames::VolkskreditbankAg
|
||||||
|
| enums::BankNames::VrBankBraunau
|
||||||
|
| enums::BankNames::UobBank
|
||||||
|
| enums::BankNames::PayWithAliorBank
|
||||||
|
| enums::BankNames::BankiSpoldzielcze
|
||||||
|
| enums::BankNames::PayWithInteligo
|
||||||
|
| enums::BankNames::BNPParibasPoland
|
||||||
|
| enums::BankNames::BankNowySA
|
||||||
|
| enums::BankNames::CreditAgricole
|
||||||
|
| enums::BankNames::PayWithBOS
|
||||||
|
| enums::BankNames::PayWithCitiHandlowy
|
||||||
|
| enums::BankNames::PayWithPlusBank
|
||||||
|
| enums::BankNames::ToyotaBank
|
||||||
|
| enums::BankNames::VeloBank
|
||||||
|
| enums::BankNames::ETransferPocztowy24
|
||||||
|
| enums::BankNames::PlusBank
|
||||||
|
| enums::BankNames::EtransferPocztowy24
|
||||||
|
| enums::BankNames::BankiSpbdzielcze
|
||||||
|
| enums::BankNames::BankNowyBfgSa
|
||||||
|
| enums::BankNames::GetinBank
|
||||||
|
| enums::BankNames::Blik
|
||||||
|
| enums::BankNames::NoblePay
|
||||||
|
| enums::BankNames::IdeaBank
|
||||||
|
| enums::BankNames::EnveloBank
|
||||||
|
| enums::BankNames::NestPrzelew
|
||||||
|
| enums::BankNames::MbankMtransfer
|
||||||
|
| enums::BankNames::Inteligo
|
||||||
|
| enums::BankNames::PbacZIpko
|
||||||
|
| enums::BankNames::BnpParibas
|
||||||
|
| enums::BankNames::BankPekaoSa
|
||||||
|
| enums::BankNames::VolkswagenBank
|
||||||
|
| enums::BankNames::AliorBank
|
||||||
|
| enums::BankNames::Boz
|
||||||
|
| enums::BankNames::BangkokBank
|
||||||
|
| enums::BankNames::KrungsriBank
|
||||||
|
| enums::BankNames::KrungThaiBank
|
||||||
|
| enums::BankNames::TheSiamCommercialBank
|
||||||
|
| enums::BankNames::KasikornBank => Err(errors::ConnectorError::NotSupported {
|
||||||
message: String::from("BankRedirect"),
|
message: String::from("BankRedirect"),
|
||||||
connector: "Adyen",
|
connector: "Adyen",
|
||||||
})?,
|
})?,
|
||||||
@ -2102,7 +2221,12 @@ impl<'a> TryFrom<&api_models::payments::BankRedirectData> for AdyenPaymentMethod
|
|||||||
),
|
),
|
||||||
api_models::payments::BankRedirectData::OpenBankingUk { issuer, .. } => Ok(
|
api_models::payments::BankRedirectData::OpenBankingUk { issuer, .. } => Ok(
|
||||||
AdyenPaymentMethod::OpenBankingUK(Box::new(OpenBankingUKData {
|
AdyenPaymentMethod::OpenBankingUK(Box::new(OpenBankingUKData {
|
||||||
issuer: OpenBankingUKIssuer::try_from(issuer)?,
|
issuer: match issuer {
|
||||||
|
Some(bank_name) => OpenBankingUKIssuer::try_from(bank_name)?,
|
||||||
|
None => Err(errors::ConnectorError::MissingRequiredField {
|
||||||
|
field_name: "issuer",
|
||||||
|
})?,
|
||||||
|
},
|
||||||
})),
|
})),
|
||||||
),
|
),
|
||||||
api_models::payments::BankRedirectData::Sofort { .. } => Ok(AdyenPaymentMethod::Sofort),
|
api_models::payments::BankRedirectData::Sofort { .. } => Ok(AdyenPaymentMethod::Sofort),
|
||||||
@ -2580,7 +2704,7 @@ impl<'a>
|
|||||||
let additional_data = get_additional_data(item.router_data);
|
let additional_data = get_additional_data(item.router_data);
|
||||||
let return_url = item.router_data.request.get_return_url()?;
|
let return_url = item.router_data.request.get_return_url()?;
|
||||||
let payment_method = AdyenPaymentMethod::try_from(bank_redirect_data)?;
|
let payment_method = AdyenPaymentMethod::try_from(bank_redirect_data)?;
|
||||||
let (shopper_locale, country) = get_redirect_extra_details(item.router_data);
|
let (shopper_locale, country) = get_redirect_extra_details(item.router_data)?;
|
||||||
let line_items = Some(get_line_items(item));
|
let line_items = Some(get_line_items(item));
|
||||||
|
|
||||||
Ok(AdyenPaymentRequest {
|
Ok(AdyenPaymentRequest {
|
||||||
@ -2611,7 +2735,7 @@ impl<'a>
|
|||||||
|
|
||||||
fn get_redirect_extra_details(
|
fn get_redirect_extra_details(
|
||||||
item: &types::PaymentsAuthorizeRouterData,
|
item: &types::PaymentsAuthorizeRouterData,
|
||||||
) -> (Option<String>, Option<api_enums::CountryAlpha2>) {
|
) -> Result<(Option<String>, Option<api_enums::CountryAlpha2>), errors::ConnectorError> {
|
||||||
match item.request.payment_method_data {
|
match item.request.payment_method_data {
|
||||||
api_models::payments::PaymentMethodData::BankRedirect(ref redirect_data) => {
|
api_models::payments::PaymentMethodData::BankRedirect(ref redirect_data) => {
|
||||||
match redirect_data {
|
match redirect_data {
|
||||||
@ -2619,17 +2743,20 @@ fn get_redirect_extra_details(
|
|||||||
country,
|
country,
|
||||||
preferred_language,
|
preferred_language,
|
||||||
..
|
..
|
||||||
} => (
|
} => Ok((
|
||||||
Some(preferred_language.to_string()),
|
Some(preferred_language.to_string()),
|
||||||
Some(country.to_owned()),
|
Some(country.to_owned()),
|
||||||
),
|
)),
|
||||||
api_models::payments::BankRedirectData::OpenBankingUk { country, .. } => {
|
api_models::payments::BankRedirectData::OpenBankingUk { country, .. } => {
|
||||||
(None, Some(country.to_owned()))
|
let country = country.ok_or(errors::ConnectorError::MissingRequiredField {
|
||||||
|
field_name: "country",
|
||||||
|
})?;
|
||||||
|
Ok((None, Some(country)))
|
||||||
}
|
}
|
||||||
_ => (None, None),
|
_ => Ok((None, None)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => (None, None),
|
_ => Ok((None, None)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user