diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs index 63b2930611..b719d1f7d1 100644 --- a/crates/api_models/src/payments.rs +++ b/crates/api_models/src/payments.rs @@ -1292,26 +1292,14 @@ pub trait GetAddressFromPaymentMethodData { impl GetAddressFromPaymentMethodData for PaymentMethodData { fn get_billing_address(&self) -> Option
{ match self { - Self::Card(card_data) => { - card_data - .card_holder_name - .as_ref() - .map(|card_holder_name| Address { - address: Some(AddressDetails { - first_name: Some(card_holder_name.clone()), - ..AddressDetails::default() - }), - email: None, - phone: None, - }) - } + Self::Card(_) => None, Self::CardRedirect(_) => None, - Self::Wallet(wallet_data) => wallet_data.get_billing_address(), - Self::PayLater(pay_later_data) => pay_later_data.get_billing_address(), - Self::BankRedirect(bank_redirect_data) => bank_redirect_data.get_billing_address(), - Self::BankDebit(bank_debit_data) => bank_debit_data.get_billing_address(), - Self::BankTransfer(bank_transfer_data) => bank_transfer_data.get_billing_address(), - Self::Voucher(voucher_data) => voucher_data.get_billing_address(), + Self::Wallet(_) => None, + Self::PayLater(_) => None, + Self::BankRedirect(_) => None, + Self::BankDebit(_) => None, + Self::BankTransfer(_) => None, + Self::Voucher(_) => None, Self::Crypto(_) | Self::Reward | Self::Upi(_) @@ -2597,6 +2585,21 @@ pub struct Address { pub email: Option, } +impl Address { + /// Unify the address, giving priority to `self` when details are present in both + pub fn unify_address(self, other: Option<&Self>) -> Self { + let other_address_details = other.and_then(|address| address.address.as_ref()); + Self { + address: self + .address + .map(|address| address.unify_address_details(other_address_details)) + .or(other_address_details.cloned()), + email: self.email.or(other.and_then(|other| other.email.clone())), + phone: self.phone.or(other.and_then(|other| other.phone.clone())), + } + } +} + // used by customers also, could be moved outside /// Address details #[derive(Clone, Default, Debug, Eq, serde::Deserialize, serde::Serialize, PartialEq, ToSchema)] @@ -2639,6 +2642,32 @@ pub struct AddressDetails { pub last_name: Option>, } +impl AddressDetails { + pub fn unify_address_details(self, other: Option<&Self>) -> Self { + if let Some(other) = other { + let (first_name, last_name) = if self.first_name.is_some() { + (self.first_name, self.last_name) + } else { + (other.first_name.clone(), other.last_name.clone()) + }; + + Self { + first_name, + last_name, + city: self.city.or(other.city.clone()), + country: self.country.or(other.country), + line1: self.line1.or(other.line1.clone()), + line2: self.line2.or(other.line2.clone()), + line3: self.line3.or(other.line3.clone()), + zip: self.zip.or(other.zip.clone()), + state: self.state.or(other.state.clone()), + } + } else { + self + } + } +} + #[derive(Debug, Clone, Default, Eq, PartialEq, ToSchema, serde::Deserialize, serde::Serialize)] pub struct PhoneDetails { /// The contact number diff --git a/crates/common_enums/src/enums.rs b/crates/common_enums/src/enums.rs index 497f1f5872..571449b987 100644 --- a/crates/common_enums/src/enums.rs +++ b/crates/common_enums/src/enums.rs @@ -2485,3 +2485,167 @@ pub enum PermissionGroup { MerchantDetailsManage, OrganizationManage, } + +/// Name of banks supported by Hyperswitch +#[derive( + Clone, + Copy, + Debug, + Eq, + Hash, + PartialEq, + serde::Deserialize, + serde::Serialize, + strum::Display, + strum::EnumString, + ToSchema, +)] +#[strum(serialize_all = "snake_case")] +#[serde(rename_all = "snake_case")] +pub enum BankNames { + AmericanExpress, + AffinBank, + AgroBank, + AllianceBank, + AmBank, + BankOfAmerica, + BankIslam, + BankMuamalat, + BankRakyat, + BankSimpananNasional, + Barclays, + BlikPSP, + CapitalOne, + Chase, + Citi, + CimbBank, + Discover, + NavyFederalCreditUnion, + PentagonFederalCreditUnion, + SynchronyBank, + WellsFargo, + AbnAmro, + AsnBank, + Bunq, + Handelsbanken, + HongLeongBank, + HsbcBank, + Ing, + Knab, + KuwaitFinanceHouse, + Moneyou, + Rabobank, + Regiobank, + Revolut, + SnsBank, + TriodosBank, + VanLanschot, + ArzteUndApothekerBank, + AustrianAnadiBankAg, + BankAustria, + Bank99Ag, + BankhausCarlSpangler, + BankhausSchelhammerUndSchatteraAg, + BankMillennium, + BankPEKAOSA, + BawagPskAg, + BksBankAg, + BrullKallmusBankAg, + BtvVierLanderBank, + CapitalBankGraweGruppeAg, + CeskaSporitelna, + Dolomitenbank, + EasybankAg, + EPlatbyVUB, + ErsteBankUndSparkassen, + FrieslandBank, + HypoAlpeadriabankInternationalAg, + HypoNoeLbFurNiederosterreichUWien, + HypoOberosterreichSalzburgSteiermark, + HypoTirolBankAg, + HypoVorarlbergBankAg, + HypoBankBurgenlandAktiengesellschaft, + KomercniBanka, + MBank, + MarchfelderBank, + Maybank, + OberbankAg, + OsterreichischeArzteUndApothekerbank, + OcbcBank, + PayWithING, + PlaceZIPKO, + PlatnoscOnlineKartaPlatnicza, + PosojilnicaBankEGen, + PostovaBanka, + PublicBank, + RaiffeisenBankengruppeOsterreich, + RhbBank, + SchelhammerCapitalBankAg, + StandardCharteredBank, + SchoellerbankAg, + SpardaBankWien, + SporoPay, + SantanderPrzelew24, + TatraPay, + Viamo, + VolksbankGruppe, + VolkskreditbankAg, + VrBankBraunau, + UobBank, + PayWithAliorBank, + BankiSpoldzielcze, + PayWithInteligo, + BNPParibasPoland, + BankNowySA, + CreditAgricole, + PayWithBOS, + PayWithCitiHandlowy, + PayWithPlusBank, + ToyotaBank, + VeloBank, + ETransferPocztowy24, + PlusBank, + EtransferPocztowy24, + BankiSpbdzielcze, + BankNowyBfgSa, + GetinBank, + Blik, + NoblePay, + IdeaBank, + EnveloBank, + NestPrzelew, + MbankMtransfer, + Inteligo, + PbacZIpko, + BnpParibas, + BankPekaoSa, + VolkswagenBank, + AliorBank, + Boz, + BangkokBank, + KrungsriBank, + KrungThaiBank, + TheSiamCommercialBank, + KasikornBank, + OpenBankSuccess, + OpenBankFailure, + OpenBankCancelled, + Aib, + BankOfScotland, + DanskeBank, + FirstDirect, + FirstTrust, + Halifax, + Lloyds, + Monzo, + NatWest, + NationwideBank, + RoyalBankOfScotland, + Starling, + TsbBank, + TescoBank, + UlsterBank, + Yoursafe, + N26, + NationaleNederlanden, +} diff --git a/crates/diesel_models/src/enums.rs b/crates/diesel_models/src/enums.rs index 865524c645..7d9b6eb57e 100644 --- a/crates/diesel_models/src/enums.rs +++ b/crates/diesel_models/src/enums.rs @@ -222,141 +222,6 @@ pub struct MandateAmountData { pub metadata: Option, } -#[derive( - Clone, - Copy, - Debug, - Eq, - Hash, - PartialEq, - serde::Deserialize, - serde::Serialize, - strum::Display, - strum::EnumString, -)] -#[diesel_enum(storage_type = "text")] -#[strum(serialize_all = "snake_case")] -#[serde(rename_all = "snake_case")] -pub enum BankNames { - AmericanExpress, - BankOfAmerica, - Barclays, - CapitalOne, - Chase, - Citi, - Discover, - NavyFederalCreditUnion, - PentagonFederalCreditUnion, - SynchronyBank, - WellsFargo, - AbnAmro, - AsnBank, - Bunq, - Handelsbanken, - Ing, - Knab, - Moneyou, - Rabobank, - Regiobank, - Revolut, - SnsBank, - TriodosBank, - VanLanschot, - ArzteUndApothekerBank, - AustrianAnadiBankAg, - BankAustria, - Bank99Ag, - BankhausCarlSpangler, - BankhausSchelhammerUndSchatteraAg, - BawagPskAg, - BksBankAg, - BrullKallmusBankAg, - BtvVierLanderBank, - CapitalBankGraweGruppeAg, - Dolomitenbank, - EasybankAg, - ErsteBankUndSparkassen, - HypoAlpeadriabankInternationalAg, - HypoNoeLbFurNiederosterreichUWien, - HypoOberosterreichSalzburgSteiermark, - HypoTirolBankAg, - HypoVorarlbergBankAg, - HypoBankBurgenlandAktiengesellschaft, - MarchfelderBank, - OberbankAg, - OsterreichischeArzteUndApothekerbank, - PosojilnicaBankEGen, - RaiffeisenBankengruppeOsterreich, - SchelhammerCapitalBankAg, - SchoellerbankAg, - SpardaBankWien, - VolksbankGruppe, - VolkskreditbankAg, - VrBankBraunau, - PlusBank, - EtransferPocztowy24, - BankiSpbdzielcze, - BankNowyBfgSa, - GetinBank, - Blik, - NoblePay, - IdeaBank, - EnveloBank, - NestPrzelew, - MbankMtransfer, - Inteligo, - PbacZIpko, - BnpParibas, - BankPekaoSa, - VolkswagenBank, - AliorBank, - Boz, - AffinBank, - AgroBank, - AllianceBank, - AmBank, - BankIslam, - BankMuamalat, - BankRakyat, - BankSimpananNasional, - CimbBank, - HongLeongBank, - HsbcBank, - KuwaitFinanceHouse, - Maybank, - OcbcBank, - PublicBank, - RhbBank, - StandardCharteredBank, - UobBank, - BangkokBank, - KrungsriBank, - KrungThaiBank, - TheSiamCommercialBank, - KasikornBank, - OpenBankSuccess, - OpenBankFailure, - OpenBankCancelled, - Aib, - BankOfScotland, - DanskeBank, - FirstDirect, - FirstTrust, - Halifax, - Lloyds, - Monzo, - NatWest, - NationwideBank, - RoyalBankOfScotland, - Starling, - TsbBank, - TescoBank, - UlsterBank, - Yoursafe, - N26, - NationaleNederlanden, -} - #[derive( Clone, Copy, diff --git a/crates/router/build.rs b/crates/router/build.rs index 167ca91840..b33c168833 100644 --- a/crates/router/build.rs +++ b/crates/router/build.rs @@ -1,8 +1,8 @@ fn main() { - // Set thread stack size to 4 MiB for debug builds + // Set thread stack size to 8 MiB for debug builds // Reference: https://doc.rust-lang.org/std/thread/#stack-size #[cfg(debug_assertions)] - println!("cargo:rustc-env=RUST_MIN_STACK=6291456"); // 6 * 1024 * 1024 = 6 MiB + println!("cargo:rustc-env=RUST_MIN_STACK=8388608"); // 8 * 1024 * 1024 = 8 MiB #[cfg(feature = "vergen")] router_env::vergen::generate_cargo_instructions(); diff --git a/crates/router/src/connector/aci/transformers.rs b/crates/router/src/connector/aci/transformers.rs index 7fb3ba7c41..a478201f96 100644 --- a/crates/router/src/connector/aci/transformers.rs +++ b/crates/router/src/connector/aci/transformers.rs @@ -12,7 +12,7 @@ use crate::{ connector::utils::{self, RouterData}, core::errors, services, - types::{self, api, storage::enums}, + types::{self, domain, storage::enums}, }; type Error = error_stack::Report; @@ -302,9 +302,9 @@ impl } } -impl TryFrom for PaymentDetails { +impl TryFrom for PaymentDetails { type Error = Error; - fn try_from(card_data: api_models::payments::Card) -> Result { + fn try_from(card_data: domain::payments::Card) -> Result { Ok(Self::AciCard(Box::new(CardDetails { card_number: card_data.card_number, card_holder: card_data @@ -441,15 +441,17 @@ impl TryFrom<&AciRouterData<&types::PaymentsAuthorizeRouterData>> for AciPayment item: &AciRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ref card_data) => Self::try_from((item, card_data)), - api::PaymentMethodData::Wallet(ref wallet_data) => Self::try_from((item, wallet_data)), - api::PaymentMethodData::PayLater(ref pay_later_data) => { + domain::PaymentMethodData::Card(ref card_data) => Self::try_from((item, card_data)), + domain::PaymentMethodData::Wallet(ref wallet_data) => { + Self::try_from((item, wallet_data)) + } + domain::PaymentMethodData::PayLater(ref pay_later_data) => { Self::try_from((item, pay_later_data)) } - api::PaymentMethodData::BankRedirect(ref bank_redirect_data) => { + domain::PaymentMethodData::BankRedirect(ref bank_redirect_data) => { Self::try_from((item, bank_redirect_data)) } - api::PaymentMethodData::MandatePayment => { + domain::PaymentMethodData::MandatePayment => { let mandate_id = item.router_data.request.mandate_id.clone().ok_or( errors::ConnectorError::MissingRequiredField { field_name: "mandate_id", @@ -457,17 +459,19 @@ impl TryFrom<&AciRouterData<&types::PaymentsAuthorizeRouterData>> for AciPayment )?; Self::try_from((item, mandate_id)) } - api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Reward - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Aci"), - ))?, + domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Aci"), + ))? + } } } } @@ -553,14 +557,14 @@ impl impl TryFrom<( &AciRouterData<&types::PaymentsAuthorizeRouterData>, - &api::Card, + &domain::Card, )> for AciPaymentsRequest { type Error = Error; fn try_from( value: ( &AciRouterData<&types::PaymentsAuthorizeRouterData>, - &api::Card, + &domain::Card, ), ) -> Result { let (item, card_data) = value; diff --git a/crates/router/src/connector/adyen/transformers.rs b/crates/router/src/connector/adyen/transformers.rs index b301be7f57..5a1abb147e 100644 --- a/crates/router/src/connector/adyen/transformers.rs +++ b/crates/router/src/connector/adyen/transformers.rs @@ -21,6 +21,7 @@ use crate::{ types::{ self, api::{self, enums as api_enums}, + domain, storage::enums as storage_enums, transformers::{ForeignFrom, ForeignTryFrom}, PaymentsAuthorizeData, @@ -1553,38 +1554,38 @@ impl<'a> TryFrom<&AdyenRouterData<&types::PaymentsAuthorizeRouterData>> { Some(mandate_ref) => AdyenPaymentRequest::try_from((item, mandate_ref)), None => match item.router_data.request.payment_method_data { - api_models::payments::PaymentMethodData::Card(ref card) => { + domain::PaymentMethodData::Card(ref card) => { AdyenPaymentRequest::try_from((item, card)) } - api_models::payments::PaymentMethodData::Wallet(ref wallet) => { + domain::PaymentMethodData::Wallet(ref wallet) => { AdyenPaymentRequest::try_from((item, wallet)) } - api_models::payments::PaymentMethodData::PayLater(ref pay_later) => { + domain::PaymentMethodData::PayLater(ref pay_later) => { AdyenPaymentRequest::try_from((item, pay_later)) } - api_models::payments::PaymentMethodData::BankRedirect(ref bank_redirect) => { + domain::PaymentMethodData::BankRedirect(ref bank_redirect) => { AdyenPaymentRequest::try_from((item, bank_redirect)) } - api_models::payments::PaymentMethodData::BankDebit(ref bank_debit) => { + domain::PaymentMethodData::BankDebit(ref bank_debit) => { AdyenPaymentRequest::try_from((item, bank_debit)) } - api_models::payments::PaymentMethodData::BankTransfer(ref bank_transfer) => { + domain::PaymentMethodData::BankTransfer(ref bank_transfer) => { AdyenPaymentRequest::try_from((item, bank_transfer.as_ref())) } - api_models::payments::PaymentMethodData::CardRedirect(ref card_redirect_data) => { + domain::PaymentMethodData::CardRedirect(ref card_redirect_data) => { AdyenPaymentRequest::try_from((item, card_redirect_data)) } - api_models::payments::PaymentMethodData::Voucher(ref voucher_data) => { + domain::PaymentMethodData::Voucher(ref voucher_data) => { AdyenPaymentRequest::try_from((item, voucher_data)) } - api_models::payments::PaymentMethodData::GiftCard(ref gift_card_data) => { + domain::PaymentMethodData::GiftCard(ref gift_card_data) => { AdyenPaymentRequest::try_from((item, gift_card_data.as_ref())) } - payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Adyen"), ))? @@ -1598,7 +1599,7 @@ impl<'a> TryFrom<&types::PaymentsPreProcessingRouterData> for AdyenBalanceReques type Error = Error; fn try_from(item: &types::PaymentsPreProcessingRouterData) -> Result { let payment_method = match &item.request.payment_method_data { - Some(payments::PaymentMethodData::GiftCard(gift_card_data)) => { + Some(domain::PaymentMethodData::GiftCard(gift_card_data)) => { match gift_card_data.as_ref() { payments::GiftCardData::Givex(gift_card_data) => { let balance_pm = BalancePmData { @@ -1962,9 +1963,9 @@ impl<'a> TryFrom<&api_models::payments::GiftCardData> for AdyenPaymentMethod<'a> } } -impl<'a> TryFrom<&api::Card> for AdyenPaymentMethod<'a> { +impl<'a> TryFrom<&domain::Card> for AdyenPaymentMethod<'a> { type Error = Error; - fn try_from(card: &api::Card) -> Result { + fn try_from(card: &domain::Card) -> Result { let adyen_card = AdyenCard { payment_type: PaymentType::Scheme, number: card.card_number.clone(), @@ -2505,16 +2506,16 @@ impl<'a> TryFrom<&api_models::payments::BankTransferData> for AdyenPaymentMethod } } -impl<'a> TryFrom<&api_models::payments::CardRedirectData> for AdyenPaymentMethod<'a> { +impl<'a> TryFrom<&domain::payments::CardRedirectData> for AdyenPaymentMethod<'a> { type Error = Error; fn try_from( - card_redirect_data: &api_models::payments::CardRedirectData, + card_redirect_data: &domain::payments::CardRedirectData, ) -> Result { match card_redirect_data { - payments::CardRedirectData::Knet {} => Ok(AdyenPaymentMethod::Knet), - payments::CardRedirectData::Benefit {} => Ok(AdyenPaymentMethod::Benefit), - payments::CardRedirectData::MomoAtm {} => Ok(AdyenPaymentMethod::MomoAtm), - payments::CardRedirectData::CardRedirect {} => { + domain::CardRedirectData::Knet {} => Ok(AdyenPaymentMethod::Knet), + domain::CardRedirectData::Benefit {} => Ok(AdyenPaymentMethod::Benefit), + domain::CardRedirectData::MomoAtm {} => Ok(AdyenPaymentMethod::MomoAtm), + domain::CardRedirectData::CardRedirect {} => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Adyen"), ) @@ -2566,7 +2567,7 @@ impl<'a> } payments::MandateReferenceId::NetworkMandateId(network_mandate_id) => { match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref card) => { + domain::PaymentMethodData::Card(ref card) => { let card_issuer = card.get_card_issuer()?; let brand = CardBrand::try_from(&card_issuer)?; let adyen_card = AdyenCard { @@ -2581,19 +2582,19 @@ impl<'a> }; Ok(AdyenPaymentMethod::AdyenCard(Box::new(adyen_card))) } - payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotSupported { message: "Network tokenization for payment method".to_string(), connector: "Adyen", @@ -2633,14 +2634,14 @@ impl<'a> impl<'a> TryFrom<( &AdyenRouterData<&types::PaymentsAuthorizeRouterData>, - &api::Card, + &domain::Card, )> for AdyenPaymentRequest<'a> { type Error = Error; fn try_from( value: ( &AdyenRouterData<&types::PaymentsAuthorizeRouterData>, - &api::Card, + &domain::Card, ), ) -> Result { let (item, card_data) = value; @@ -2960,22 +2961,20 @@ fn get_redirect_extra_details( item: &types::PaymentsAuthorizeRouterData, ) -> Result<(Option, Option), errors::ConnectorError> { match item.request.payment_method_data { - api_models::payments::PaymentMethodData::BankRedirect(ref redirect_data) => { - match redirect_data { - api_models::payments::BankRedirectData::Sofort { - country, - preferred_language, - .. - } => Ok((preferred_language.clone(), *country)), - api_models::payments::BankRedirectData::OpenBankingUk { country, .. } => { - let country = country.ok_or(errors::ConnectorError::MissingRequiredField { - field_name: "country", - })?; - Ok((None, Some(country))) - } - _ => Ok((None, None)), + domain::PaymentMethodData::BankRedirect(ref redirect_data) => match redirect_data { + api_models::payments::BankRedirectData::Sofort { + country, + preferred_language, + .. + } => Ok((preferred_language.clone(), *country)), + api_models::payments::BankRedirectData::OpenBankingUk { country, .. } => { + let country = country.ok_or(errors::ConnectorError::MissingRequiredField { + field_name: "country", + })?; + Ok((None, Some(country))) } - } + _ => Ok((None, None)), + }, _ => Ok((None, None)), } } @@ -3131,14 +3130,14 @@ impl<'a> impl<'a> TryFrom<( &AdyenRouterData<&types::PaymentsAuthorizeRouterData>, - &api_models::payments::CardRedirectData, + &domain::payments::CardRedirectData, )> for AdyenPaymentRequest<'a> { type Error = Error; fn try_from( value: ( &AdyenRouterData<&types::PaymentsAuthorizeRouterData>, - &api_models::payments::CardRedirectData, + &domain::payments::CardRedirectData, ), ) -> Result { let (item, card_redirect_data) = value; diff --git a/crates/router/src/connector/airwallex/transformers.rs b/crates/router/src/connector/airwallex/transformers.rs index ee52884817..6d17707355 100644 --- a/crates/router/src/connector/airwallex/transformers.rs +++ b/crates/router/src/connector/airwallex/transformers.rs @@ -10,7 +10,7 @@ use crate::{ core::errors, pii::Secret, services, - types::{self, api, storage::enums, PaymentsSyncData}, + types::{self, api, domain, storage::enums, PaymentsSyncData}, }; pub struct AirwallexAuthType { @@ -167,7 +167,7 @@ impl TryFrom<&AirwallexRouterData<&types::PaymentsAuthorizeRouterData>> let mut payment_method_options = None; let request = &item.router_data.request; let payment_method = match request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { payment_method_options = Some(AirwallexPaymentOptions::Card(AirwallexCardPaymentOptions { auto_capture: matches!( @@ -185,21 +185,23 @@ impl TryFrom<&AirwallexRouterData<&types::PaymentsAuthorizeRouterData>> payment_method_type: AirwallexPaymentType::Card, })) } - api::PaymentMethodData::Wallet(ref wallet_data) => get_wallet_details(wallet_data), - api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("airwallex"), - )), + domain::PaymentMethodData::Wallet(ref wallet_data) => get_wallet_details(wallet_data), + domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("airwallex"), + )) + } }?; Ok(Self { diff --git a/crates/router/src/connector/authorizedotnet/transformers.rs b/crates/router/src/connector/authorizedotnet/transformers.rs index 2e5a9f3bbc..3156f01ebc 100644 --- a/crates/router/src/connector/authorizedotnet/transformers.rs +++ b/crates/router/src/connector/authorizedotnet/transformers.rs @@ -15,6 +15,7 @@ use crate::{ types::{ self, api::{self, enums as api_enums}, + domain, storage::enums, transformers::ForeignFrom, }, @@ -163,7 +164,7 @@ fn get_pm_and_subsequent_auth_detail( reason: Reason::Resubmission, }); match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { let payment_details = PaymentDetails::CreditCard(CreditCardDetails { card_number: (*ccard.card_number).clone(), expiration_date: ccard.get_expiry_date_as_yyyymm("-"), @@ -171,19 +172,19 @@ fn get_pm_and_subsequent_auth_detail( }); Ok((payment_details, processing_options, subseuent_auth_info)) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("authorizedotnet"), ))? @@ -192,7 +193,7 @@ fn get_pm_and_subsequent_auth_detail( } Some(api_models::payments::MandateReferenceId::ConnectorMandateId(_)) | None => { match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { Ok(( PaymentDetails::CreditCard(CreditCardDetails { card_number: (*ccard.card_number).clone(), @@ -206,7 +207,7 @@ fn get_pm_and_subsequent_auth_detail( None, )) } - api::PaymentMethodData::Wallet(ref wallet_data) => Ok(( + domain::PaymentMethodData::Wallet(ref wallet_data) => Ok(( get_wallet_data( wallet_data, &item.router_data.request.complete_authorize_url, @@ -214,18 +215,18 @@ fn get_pm_and_subsequent_auth_detail( None, None, )), - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("authorizedotnet"), ))? diff --git a/crates/router/src/connector/bambora/transformers.rs b/crates/router/src/connector/bambora/transformers.rs index 40c3219d35..42420cb340 100644 --- a/crates/router/src/connector/bambora/transformers.rs +++ b/crates/router/src/connector/bambora/transformers.rs @@ -9,7 +9,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Default, Debug, Serialize, Eq, PartialEq)] @@ -106,7 +106,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for BamboraPaymentsRequest { type Error = error_stack::Report; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => { + domain::PaymentMethodData::Card(req_card) => { let three_ds = match item.auth_type { enums::AuthenticationType::ThreeDs => Some(ThreeDSecure { enabled: true, diff --git a/crates/router/src/connector/bankofamerica/transformers.rs b/crates/router/src/connector/bankofamerica/transformers.rs index c5a4f0b317..b9456982f2 100644 --- a/crates/router/src/connector/bankofamerica/transformers.rs +++ b/crates/router/src/connector/bankofamerica/transformers.rs @@ -18,6 +18,7 @@ use crate::{ types::{ self, api::{self, enums as api_enums}, + domain, storage::enums, transformers::ForeignFrom, ApplePayPredecryptData, @@ -462,14 +463,14 @@ pub struct Avs { impl TryFrom<( &BankOfAmericaRouterData<&types::PaymentsCompleteAuthorizeRouterData>, - payments::Card, + domain::Card, )> for BankOfAmericaPaymentsRequest { type Error = error_stack::Report; fn try_from( (item, ccard): ( &BankOfAmericaRouterData<&types::PaymentsCompleteAuthorizeRouterData>, - payments::Card, + domain::Card, ), ) -> Result { let email = item.router_data.request.get_email()?; @@ -539,14 +540,14 @@ impl impl TryFrom<( &BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>, - payments::Card, + domain::Card, )> for BankOfAmericaPaymentsRequest { type Error = error_stack::Report; fn try_from( (item, ccard): ( &BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>, - payments::Card, + domain::Card, ), ) -> Result { let email = item.router_data.request.get_email()?; @@ -700,8 +701,8 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>> item: &BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data.clone() { - payments::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), - payments::PaymentMethodData::Wallet(wallet_data) => match wallet_data { + domain::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data { payments::WalletData::ApplePay(apple_pay_data) => { match item.router_data.payment_method_token.clone() { Some(payment_method_token) => match payment_method_token { @@ -803,18 +804,18 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>> ) .into()), }, - payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Bank of America"), ) @@ -839,7 +840,7 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>> item: &BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data.clone() { - payments::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let card_issuer = ccard.get_card_issuer(); let card_type = match card_issuer { Ok(issuer) => Some(String::from(issuer)), @@ -860,19 +861,19 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsAuthorizeRouterData>> client_reference_information, }) } - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("BankOfAmerica"), ) @@ -1232,7 +1233,7 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsPreProcessingRouterData>> }, )?; let payment_information = match payment_method_data { - payments::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let card_issuer = ccard.get_card_issuer(); let card_type = match card_issuer { Ok(issuer) => Some(String::from(issuer)), @@ -1248,19 +1249,19 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsPreProcessingRouterData>> }, })) } - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("BankOfAmerica"), )) @@ -1348,20 +1349,20 @@ impl TryFrom<&BankOfAmericaRouterData<&types::PaymentsCompleteAuthorizeRouterDat }, )?; match payment_method_data { - payments::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("BankOfAmerica"), ) diff --git a/crates/router/src/connector/billwerk/transformers.rs b/crates/router/src/connector/billwerk/transformers.rs index ffcd14bf05..4e91a2c9ff 100644 --- a/crates/router/src/connector/billwerk/transformers.rs +++ b/crates/router/src/connector/billwerk/transformers.rs @@ -6,7 +6,7 @@ use crate::{ connector::utils::{self, CardData, PaymentsAuthorizeRequestData, RouterData}, consts, core::errors, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; pub struct BillwerkRouterData { @@ -85,7 +85,7 @@ impl TryFrom<&types::TokenizationRouterData> for BillwerkTokenRequest { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let connector_auth = &item.connector_auth_type; let auth_type = BillwerkAuthType::try_from(connector_auth)?; Ok(Self { @@ -99,19 +99,19 @@ impl TryFrom<&types::TokenizationRouterData> for BillwerkTokenRequest { strong_authentication_rule: None, }) } - api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::payments::PaymentMethodData::Wallet(_) + | domain::payments::PaymentMethodData::CardRedirect(_) + | domain::payments::PaymentMethodData::PayLater(_) + | domain::payments::PaymentMethodData::BankRedirect(_) + | domain::payments::PaymentMethodData::BankDebit(_) + | domain::payments::PaymentMethodData::BankTransfer(_) + | domain::payments::PaymentMethodData::Crypto(_) + | domain::payments::PaymentMethodData::MandatePayment + | domain::payments::PaymentMethodData::Reward + | domain::payments::PaymentMethodData::Upi(_) + | domain::payments::PaymentMethodData::Voucher(_) + | domain::payments::PaymentMethodData::GiftCard(_) + | domain::payments::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("billwerk"), ) diff --git a/crates/router/src/connector/bluesnap/transformers.rs b/crates/router/src/connector/bluesnap/transformers.rs index e22d27e4b8..518fb3f800 100644 --- a/crates/router/src/connector/bluesnap/transformers.rs +++ b/crates/router/src/connector/bluesnap/transformers.rs @@ -21,7 +21,7 @@ use crate::{ core::errors, pii::Secret, types::{ - self, api, + self, api, domain, storage::enums, transformers::{ForeignFrom, ForeignTryFrom}, }, @@ -230,23 +230,23 @@ impl TryFrom<&BluesnapRouterData<&types::PaymentsAuthorizeRouterData>> item: &BluesnapRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => Ok(Self { + domain::PaymentMethodData::Card(ref ccard) => Ok(Self { cc_number: ccard.card_number.clone(), exp_date: ccard.get_expiry_date_as_mmyyyy("/"), }), - api::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( "Selected payment method via Token flow through bluesnap".to_string(), ) @@ -280,7 +280,7 @@ impl TryFrom<&BluesnapRouterData<&types::PaymentsAuthorizeRouterData>> for Blues .payment_method_data .clone() { - api::PaymentMethodData::Card(ref ccard) => Ok(( + domain::PaymentMethodData::Card(ref ccard) => Ok(( PaymentMethodDetails::CreditCard(Card { card_number: ccard.card_number.clone(), expiration_month: ccard.card_exp_month.clone(), @@ -292,7 +292,7 @@ impl TryFrom<&BluesnapRouterData<&types::PaymentsAuthorizeRouterData>> for Blues item.router_data.request.get_email()?, )?, )), - api::PaymentMethodData::Wallet(wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data { api_models::payments::WalletData::GooglePay(payment_method_data) => { let gpay_object = BluesnapGooglePayObject { payment_method_data: utils::GooglePayWalletData::from(payment_method_data), @@ -399,20 +399,22 @@ impl TryFrom<&BluesnapRouterData<&types::PaymentsAuthorizeRouterData>> for Blues )) } }, - payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("bluesnap"), - )), + domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("bluesnap"), + )) + } }?; Ok(Self { amount: item.amount.to_owned(), diff --git a/crates/router/src/connector/boku/transformers.rs b/crates/router/src/connector/boku/transformers.rs index 5f36225fd4..c2b805b5de 100644 --- a/crates/router/src/connector/boku/transformers.rs +++ b/crates/router/src/connector/boku/transformers.rs @@ -9,7 +9,7 @@ use crate::{ connector::utils::{self, AddressDetailsData, RouterData}, core::errors, services::{self, RedirectForm}, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Debug, Clone, Serialize)] @@ -78,22 +78,20 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for BokuPaymentsRequest { type Error = error_stack::Report; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { match item.request.payment_method_data.clone() { - api_models::payments::PaymentMethodData::Wallet(wallet_data) => { - Self::try_from((item, &wallet_data)) - } - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(wallet_data) => Self::try_from((item, &wallet_data)), + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("boku"), ))? diff --git a/crates/router/src/connector/braintree/braintree_graphql_transformers.rs b/crates/router/src/connector/braintree/braintree_graphql_transformers.rs index 1f933392f2..0399a5d428 100644 --- a/crates/router/src/connector/braintree/braintree_graphql_transformers.rs +++ b/crates/router/src/connector/braintree/braintree_graphql_transformers.rs @@ -9,7 +9,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, unimplemented_payment_method, }; @@ -119,7 +119,7 @@ impl TryFrom<&BraintreeRouterData<&types::PaymentsAuthorizeRouterData>> )?; match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Card(_) => { + domain::PaymentMethodData::Card(_) => { if item.router_data.is_three_ds() { Ok(Self::CardThreeDs(BraintreeClientTokenRequest::try_from( metadata, @@ -128,19 +128,19 @@ impl TryFrom<&BraintreeRouterData<&types::PaymentsAuthorizeRouterData>> Ok(Self::Card(CardPaymentRequest::try_from((item, metadata))?)) } } - api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("braintree"), ) @@ -860,7 +860,7 @@ impl TryFrom<&types::TokenizationRouterData> for BraintreeTokenRequest { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(card_data) => { + domain::PaymentMethodData::Card(card_data) => { let query = TOKENIZE_CREDIT_CARD.to_string(); let input = InputData { credit_card: CreditCardData { @@ -878,22 +878,24 @@ impl TryFrom<&types::TokenizationRouterData> for BraintreeTokenRequest { variables: VariableInput { input }, }) } - api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("braintree"), - ) - .into()), + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("braintree"), + ) + .into()) + } } } } @@ -1406,7 +1408,7 @@ impl TryFrom<&BraintreeRouterData<&types::PaymentsCompleteAuthorizeRouterData>> fn get_braintree_redirect_form( client_token_data: ClientTokenResponse, payment_method_token: types::PaymentMethodToken, - card_details: api_models::payments::PaymentMethodData, + card_details: domain::PaymentMethodData, ) -> Result> { Ok(services::RedirectForm::Braintree { client_token: client_token_data @@ -1423,24 +1425,24 @@ fn get_braintree_redirect_form( ))?, }, bin: match card_details { - api_models::payments::PaymentMethodData::Card(card_details) => { + domain::PaymentMethodData::Card(card_details) => { card_details.card_number.get_card_isin() } - api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - "given payment method".to_owned(), - ))?, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => Err( + errors::ConnectorError::NotImplemented("given payment method".to_owned()), + )?, }, }) } diff --git a/crates/router/src/connector/braintree/transformers.rs b/crates/router/src/connector/braintree/transformers.rs index 4e8a15dfea..d9000ade25 100644 --- a/crates/router/src/connector/braintree/transformers.rs +++ b/crates/router/src/connector/braintree/transformers.rs @@ -7,7 +7,7 @@ use crate::{ connector::utils::{self}, consts, core::errors, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Default, Debug, Serialize, Eq, PartialEq)] @@ -115,7 +115,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for BraintreePaymentsRequest { let kind = "sale".to_string(); let payment_method_data_type = match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => Ok(PaymentMethodType::CreditCard(Card { + domain::PaymentMethodData::Card(ccard) => Ok(PaymentMethodType::CreditCard(Card { credit_card: CardDetails { number: ccard.card_number, expiration_month: ccard.card_exp_month, @@ -123,7 +123,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for BraintreePaymentsRequest { cvv: ccard.card_cvc, }, })), - api::PaymentMethodData::Wallet(ref wallet_data) => { + domain::PaymentMethodData::Wallet(ref wallet_data) => { Ok(PaymentMethodType::PaymentMethodNonce(Nonce { payment_method_nonce: match wallet_data { api_models::payments::WalletData::PaypalSdk(wallet_data) => { @@ -162,20 +162,22 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for BraintreePaymentsRequest { .into(), })) } - api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("braintree"), - )), + domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("braintree"), + )) + } }?; let braintree_transaction_body = TransactionBody { amount, diff --git a/crates/router/src/connector/checkout/transformers.rs b/crates/router/src/connector/checkout/transformers.rs index 1a031eaa7c..899ea345a3 100644 --- a/crates/router/src/connector/checkout/transformers.rs +++ b/crates/router/src/connector/checkout/transformers.rs @@ -13,7 +13,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, unimplemented_payment_method, }; @@ -90,7 +90,7 @@ impl TryFrom<&types::TokenizationRouterData> for TokenRequest { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Wallet(wallet_data) => match wallet_data.clone() { + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data.clone() { api_models::payments::WalletData::GooglePay(_data) => { let json_wallet_data: CheckoutGooglePayData = wallet_data.get_wallet_token_as_json("Google Pay".to_string())?; @@ -131,19 +131,19 @@ impl TryFrom<&types::TokenizationRouterData> for TokenRequest { .into()) } }, - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("checkout"), ) @@ -292,7 +292,7 @@ impl TryFrom<&CheckoutRouterData<&types::PaymentsAuthorizeRouterData>> for Payme item: &CheckoutRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { let source_var = match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let a = PaymentSource::Card(CardSource { source_type: CheckoutSourceTypes::Card, number: ccard.card_number.clone(), @@ -302,7 +302,7 @@ impl TryFrom<&CheckoutRouterData<&types::PaymentsAuthorizeRouterData>> for Payme }); Ok(a) } - api::PaymentMethodData::Wallet(wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data { api_models::payments::WalletData::GooglePay(_) => { Ok(PaymentSource::Wallets(WalletSource { source_type: CheckoutSourceTypes::Token, @@ -374,20 +374,22 @@ impl TryFrom<&CheckoutRouterData<&types::PaymentsAuthorizeRouterData>> for Payme } }, - api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("checkout"), - )), + domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("checkout"), + )) + } }?; let authentication_data = item.router_data.request.authentication_data.as_ref(); diff --git a/crates/router/src/connector/cryptopay/transformers.rs b/crates/router/src/connector/cryptopay/transformers.rs index 707cfd8f06..aaf21af058 100644 --- a/crates/router/src/connector/cryptopay/transformers.rs +++ b/crates/router/src/connector/cryptopay/transformers.rs @@ -8,7 +8,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums}, + types::{self, domain, storage::enums}, }; #[derive(Debug, Serialize)] @@ -62,7 +62,7 @@ impl TryFrom<&CryptopayRouterData<&types::PaymentsAuthorizeRouterData>> item: &CryptopayRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { let cryptopay_request = match item.router_data.request.payment_method_data { - api::PaymentMethodData::Crypto(ref cryptodata) => { + domain::PaymentMethodData::Crypto(ref cryptodata) => { let pay_currency = cryptodata.get_pay_currency()?; Ok(Self { price_amount: item.amount.to_owned(), @@ -74,19 +74,19 @@ impl TryFrom<&CryptopayRouterData<&types::PaymentsAuthorizeRouterData>> custom_id: item.router_data.connector_request_reference_id.clone(), }) } - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::MandatePayment {} - | api_models::payments::PaymentMethodData::Reward {} - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::MandatePayment {} + | domain::PaymentMethodData::Reward {} + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("CryptoPay"), )) diff --git a/crates/router/src/connector/cybersource/transformers.rs b/crates/router/src/connector/cybersource/transformers.rs index d58f51e1d7..2dc832841c 100644 --- a/crates/router/src/connector/cybersource/transformers.rs +++ b/crates/router/src/connector/cybersource/transformers.rs @@ -19,6 +19,7 @@ use crate::{ types::{ self, api::{self, enums as api_enums}, + domain, storage::enums, transformers::ForeignFrom, ApplePayPredecryptData, @@ -98,7 +99,7 @@ impl TryFrom<&types::SetupMandateRouterData> for CybersourceZeroMandateRequest { }; let (payment_information, solution) = match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let card_issuer = ccard.get_card_issuer(); let card_type = match card_issuer { Ok(issuer) => Some(String::from(issuer)), @@ -118,7 +119,7 @@ impl TryFrom<&types::SetupMandateRouterData> for CybersourceZeroMandateRequest { ) } - api::PaymentMethodData::Wallet(wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data { payments::WalletData::ApplePay(apple_pay_data) => { match item.payment_method_token.clone() { Some(payment_method_token) => match payment_method_token { @@ -195,18 +196,18 @@ impl TryFrom<&types::SetupMandateRouterData> for CybersourceZeroMandateRequest { utils::get_unimplemented_payment_method_error_message("Cybersource"), ))?, }, - payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Cybersource"), ))? @@ -727,14 +728,14 @@ impl ForeignFrom for Vec { impl TryFrom<( &CybersourceRouterData<&types::PaymentsAuthorizeRouterData>, - payments::Card, + domain::Card, )> for CybersourcePaymentsRequest { type Error = error_stack::Report; fn try_from( (item, ccard): ( &CybersourceRouterData<&types::PaymentsAuthorizeRouterData>, - payments::Card, + domain::Card, ), ) -> Result { let email = item.router_data.request.get_email()?; @@ -778,14 +779,14 @@ impl impl TryFrom<( &CybersourceRouterData<&types::PaymentsCompleteAuthorizeRouterData>, - payments::Card, + domain::Card, )> for CybersourcePaymentsRequest { type Error = error_stack::Report; fn try_from( (item, ccard): ( &CybersourceRouterData<&types::PaymentsCompleteAuthorizeRouterData>, - payments::Card, + domain::Card, ), ) -> Result { let email = item.router_data.request.get_email()?; @@ -972,8 +973,8 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsAuthorizeRouterData>> Some(connector_mandate_id) => Self::try_from((item, connector_mandate_id)), None => { match item.router_data.request.payment_method_data.clone() { - payments::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), - payments::PaymentMethodData::Wallet(wallet_data) => match wallet_data { + domain::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data { payments::WalletData::ApplePay(apple_pay_data) => { match item.router_data.payment_method_token.clone() { Some(payment_method_token) => match payment_method_token { @@ -1084,7 +1085,7 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsAuthorizeRouterData>> }, // If connector_mandate_id is present MandatePayment will be the PMD, the case will be handled in the first `if` clause. // This is a fallback implementation in the event of catastrophe. - payments::PaymentMethodData::MandatePayment => { + domain::PaymentMethodData::MandatePayment => { let connector_mandate_id = item.router_data.request.connector_mandate_id().ok_or( errors::ConnectorError::MissingRequiredField { @@ -1093,17 +1094,17 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsAuthorizeRouterData>> )?; Self::try_from((item, connector_mandate_id)) } - payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Cybersource"), ) @@ -1168,7 +1169,7 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsAuthorizeRouterData>> item: &CybersourceRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data.clone() { - payments::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let card_issuer = ccard.get_card_issuer(); let card_type = match card_issuer { Ok(issuer) => Some(String::from(issuer)), @@ -1189,19 +1190,19 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsAuthorizeRouterData>> client_reference_information, }) } - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Cybersource"), ) @@ -1853,7 +1854,7 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsPreProcessingRouterData>> }, )?; let payment_information = match payment_method_data { - payments::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let card_issuer = ccard.get_card_issuer(); let card_type = match card_issuer { Ok(issuer) => Some(String::from(issuer)), @@ -1869,19 +1870,19 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsPreProcessingRouterData>> }, })) } - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Cybersource"), )) @@ -1969,20 +1970,20 @@ impl TryFrom<&CybersourceRouterData<&types::PaymentsCompleteAuthorizeRouterData> }, )?; match payment_method_data { - payments::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Card(ccard) => Self::try_from((item, ccard)), + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Cybersource"), ) diff --git a/crates/router/src/connector/dlocal/transformers.rs b/crates/router/src/connector/dlocal/transformers.rs index c1b8731ee8..20997f3a24 100644 --- a/crates/router/src/connector/dlocal/transformers.rs +++ b/crates/router/src/connector/dlocal/transformers.rs @@ -9,7 +9,7 @@ use crate::{ connector::utils::{AddressDetailsData, PaymentsAuthorizeRequestData, RouterData}, core::errors, services, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Debug, Default, Eq, PartialEq, Serialize)] @@ -107,7 +107,7 @@ impl TryFrom<&DlocalRouterData<&types::PaymentsAuthorizeRouterData>> for DlocalP let country = address.get_country()?; let name = get_payer_name(address); match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { let should_capture = matches!( item.router_data.request.capture_method, Some(enums::CaptureMethod::Automatic) @@ -160,21 +160,25 @@ impl TryFrom<&DlocalRouterData<&types::PaymentsAuthorizeRouterData>> for DlocalP }; Ok(payment_request) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - crate::connector::utils::get_unimplemented_payment_method_error_message("Dlocal"), - ))?, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + crate::connector::utils::get_unimplemented_payment_method_error_message( + "Dlocal", + ), + ))? + } } } } diff --git a/crates/router/src/connector/dummyconnector/transformers.rs b/crates/router/src/connector/dummyconnector/transformers.rs index 5c20d35358..0d4ff3b850 100644 --- a/crates/router/src/connector/dummyconnector/transformers.rs +++ b/crates/router/src/connector/dummyconnector/transformers.rs @@ -6,7 +6,7 @@ use url::Url; use crate::{ core::errors, services, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Debug, Serialize, strum::Display, Eq, PartialEq)] @@ -83,9 +83,9 @@ pub struct DummyConnectorCard { cvc: Secret, } -impl TryFrom for DummyConnectorCard { +impl TryFrom for DummyConnectorCard { type Error = error_stack::Report; - fn try_from(value: api_models::payments::Card) -> Result { + fn try_from(value: domain::Card) -> Result { Ok(Self { name: value .card_holder_name @@ -153,13 +153,13 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> .request .payment_method_data { - api::PaymentMethodData::Card(ref req_card) => { + domain::PaymentMethodData::Card(ref req_card) => { Ok(PaymentMethodData::Card(req_card.clone().try_into()?)) } - api::PaymentMethodData::Wallet(ref wallet_data) => { + domain::PaymentMethodData::Wallet(ref wallet_data) => { Ok(PaymentMethodData::Wallet(wallet_data.clone().try_into()?)) } - api::PaymentMethodData::PayLater(ref pay_later_data) => Ok( + domain::PaymentMethodData::PayLater(ref pay_later_data) => Ok( PaymentMethodData::PayLater(pay_later_data.clone().try_into()?), ), _ => Err(errors::ConnectorError::NotImplemented("Payment methods".to_string()).into()), diff --git a/crates/router/src/connector/fiserv/transformers.rs b/crates/router/src/connector/fiserv/transformers.rs index dac2a3b2fb..fcb808c670 100644 --- a/crates/router/src/connector/fiserv/transformers.rs +++ b/crates/router/src/connector/fiserv/transformers.rs @@ -9,7 +9,7 @@ use crate::{ }, core::errors, pii::Secret, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Debug, Serialize)] @@ -173,7 +173,7 @@ impl TryFrom<&FiservRouterData<&types::PaymentsAuthorizeRouterData>> for FiservP pos_condition_code: TransactionInteractionPosConditionCode::CardNotPresentEcom, }; let source = match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { let card = CardData { card_data: ccard.card_number.clone(), expiration_month: ccard.card_exp_month.clone(), @@ -182,19 +182,19 @@ impl TryFrom<&FiservRouterData<&types::PaymentsAuthorizeRouterData>> for FiservP }; Source::PaymentCard { card } } - api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("fiserv"), )) diff --git a/crates/router/src/connector/forte/transformers.rs b/crates/router/src/connector/forte/transformers.rs index 00efbefe28..35f003233d 100644 --- a/crates/router/src/connector/forte/transformers.rs +++ b/crates/router/src/connector/forte/transformers.rs @@ -7,7 +7,7 @@ use crate::{ self, AddressDetailsData, CardData, PaymentsAuthorizeRequestData, RouterData, }, core::errors, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, }; #[derive(Debug, Serialize)] @@ -71,7 +71,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for FortePaymentsRequest { ))? } match item.request.payment_method_data { - api_models::payments::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { let action = match item.request.is_auto_capture()? { true => ForteAction::Sale, false => ForteAction::Authorize, @@ -102,19 +102,19 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for FortePaymentsRequest { card, }) } - api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment {} - | api_models::payments::PaymentMethodData::Reward {} - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment {} + | domain::PaymentMethodData::Reward {} + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Forte"), ))? diff --git a/crates/router/src/connector/globalpay/transformers.rs b/crates/router/src/connector/globalpay/transformers.rs index ae6f8d3966..bc39a32220 100644 --- a/crates/router/src/connector/globalpay/transformers.rs +++ b/crates/router/src/connector/globalpay/transformers.rs @@ -17,7 +17,7 @@ use crate::{ consts, core::errors, services::{self, RedirectForm}, - types::{self, api, storage::enums, ErrorResponse}, + types::{self, api, domain, storage::enums, ErrorResponse}, }; type Error = error_stack::Report; @@ -380,7 +380,7 @@ fn get_payment_method_data( brand_reference: Option, ) -> Result { match &item.request.payment_method_data { - api::PaymentMethodData::Card(ccard) => Ok(PaymentMethodData::Card(requests::Card { + domain::PaymentMethodData::Card(ccard) => Ok(PaymentMethodData::Card(requests::Card { number: ccard.card_number.clone(), expiry_month: ccard.card_exp_month.clone(), expiry_year: ccard.get_card_expiry_year_2_digit()?, @@ -396,8 +396,8 @@ fn get_payment_method_data( tag: None, track: None, })), - api::PaymentMethodData::Wallet(wallet_data) => get_wallet_data(wallet_data), - api::PaymentMethodData::BankRedirect(bank_redirect) => { + domain::PaymentMethodData::Wallet(wallet_data) => get_wallet_data(wallet_data), + domain::PaymentMethodData::BankRedirect(bank_redirect) => { PaymentMethodData::try_from(bank_redirect) } _ => Err(errors::ConnectorError::NotImplemented( @@ -408,7 +408,7 @@ fn get_payment_method_data( fn get_return_url(item: &types::PaymentsAuthorizeRouterData) -> Option { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Wallet(api_models::payments::WalletData::PaypalRedirect(_)) => { + domain::PaymentMethodData::Wallet(api_models::payments::WalletData::PaypalRedirect(_)) => { item.request.complete_authorize_url.clone() } _ => item.request.router_return_url.clone(), diff --git a/crates/router/src/connector/globepay/transformers.rs b/crates/router/src/connector/globepay/transformers.rs index c988bff52e..bdb3b6ef5c 100644 --- a/crates/router/src/connector/globepay/transformers.rs +++ b/crates/router/src/connector/globepay/transformers.rs @@ -7,7 +7,7 @@ use crate::{ connector::utils::{self, RouterData}, consts, core::errors, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; type Error = error_stack::Report; @@ -29,7 +29,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for GlobepayPaymentsRequest { type Error = Error; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { let channel: GlobepayChannel = match &item.request.payment_method_data { - api::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { api::WalletData::AliPayQr(_) => GlobepayChannel::Alipay, api::WalletData::WeChatPayQr(_) => GlobepayChannel::Wechat, api::WalletData::AliPayRedirect(_) @@ -59,21 +59,23 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for GlobepayPaymentsRequest { utils::get_unimplemented_payment_method_error_message("globepay"), ))?, }, - api::PaymentMethodData::Card(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("globepay"), - ))?, + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("globepay"), + ))? + } }; let description = item.get_description()?; Ok(Self { diff --git a/crates/router/src/connector/gocardless/transformers.rs b/crates/router/src/connector/gocardless/transformers.rs index 21fc44fe84..b8c9f9feee 100644 --- a/crates/router/src/connector/gocardless/transformers.rs +++ b/crates/router/src/connector/gocardless/transformers.rs @@ -14,7 +14,8 @@ use crate::{ }, core::errors, types::{ - self, api, storage::enums, transformers::ForeignTryFrom, MandateReference, ResponseId, + self, api, domain, storage::enums, transformers::ForeignTryFrom, MandateReference, + ResponseId, }, }; @@ -79,7 +80,7 @@ impl TryFrom<&types::ConnectorCustomerRouterData> for GocardlessCustomerRequest fn try_from(item: &types::ConnectorCustomerRouterData) -> Result { let email = item.request.get_email()?; let billing_details = match &item.request.payment_method_data { - api_models::payments::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::BankDebit(bank_debit_data) => { match bank_debit_data.clone() { BankDebitData::AchBankDebit { billing_details, .. @@ -97,19 +98,19 @@ impl TryFrom<&types::ConnectorCustomerRouterData> for GocardlessCustomerRequest } } } - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Gocardless"), )) @@ -284,25 +285,27 @@ impl TryFrom<&types::TokenizationRouterData> for CustomerBankAccount { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match &item.request.payment_method_data { - api_models::payments::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::BankDebit(bank_debit_data) => { Self::try_from(bank_debit_data) } - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Gocardless"), - ) - .into()), + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Gocardless"), + ) + .into()) + } } } } @@ -465,28 +468,30 @@ impl TryFrom<&types::SetupMandateRouterData> for GocardlessMandateRequest { type Error = error_stack::Report; fn try_from(item: &types::SetupMandateRouterData) -> Result { let (scheme, payer_ip_address) = match &item.request.payment_method_data { - api_models::payments::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::BankDebit(bank_debit_data) => { let payer_ip_address = get_ip_if_required(bank_debit_data, item)?; Ok(( GocardlessScheme::try_from(bank_debit_data)?, payer_ip_address, )) } - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - "Setup Mandate flow for selected payment method through Gocardless".to_string(), - )), + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + "Setup Mandate flow for selected payment method through Gocardless".to_string(), + )) + } }?; let payment_method_token = item.get_payment_method_token()?; let customer_bank_account = match payment_method_token { diff --git a/crates/router/src/connector/helcim/transformers.rs b/crates/router/src/connector/helcim/transformers.rs index 66cb266603..2dc44c8a19 100644 --- a/crates/router/src/connector/helcim/transformers.rs +++ b/crates/router/src/connector/helcim/transformers.rs @@ -10,7 +10,7 @@ use crate::{ RefundsRequestData, RouterData, }, core::errors, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Debug, Serialize)] @@ -121,9 +121,11 @@ pub struct HelcimCard { card_c_v_v: Secret, } -impl TryFrom<(&types::SetupMandateRouterData, &api::Card)> for HelcimVerifyRequest { +impl TryFrom<(&types::SetupMandateRouterData, &domain::Card)> for HelcimVerifyRequest { type Error = error_stack::Report; - fn try_from(value: (&types::SetupMandateRouterData, &api::Card)) -> Result { + fn try_from( + value: (&types::SetupMandateRouterData, &domain::Card), + ) -> Result { let (item, req_card) = value; let card_data = HelcimCard { card_expiry: req_card @@ -157,22 +159,22 @@ impl TryFrom<&types::SetupMandateRouterData> for HelcimVerifyRequest { type Error = error_stack::Report; fn try_from(item: &types::SetupMandateRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => Self::try_from((item, &req_card)), - api_models::payments::PaymentMethodData::BankTransfer(_) => { + domain::PaymentMethodData::Card(req_card) => Self::try_from((item, &req_card)), + domain::PaymentMethodData::BankTransfer(_) => { Err(errors::ConnectorError::NotImplemented("Payment Method".to_string()).into()) } - api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Helcim"), ))? @@ -184,14 +186,14 @@ impl TryFrom<&types::SetupMandateRouterData> for HelcimVerifyRequest { impl TryFrom<( &HelcimRouterData<&types::PaymentsAuthorizeRouterData>, - &api::Card, + &domain::Card, )> for HelcimPaymentsRequest { type Error = error_stack::Report; fn try_from( value: ( &HelcimRouterData<&types::PaymentsAuthorizeRouterData>, - &api::Card, + &domain::Card, ), ) -> Result { let (item, req_card) = value; @@ -258,24 +260,26 @@ impl TryFrom<&HelcimRouterData<&types::PaymentsAuthorizeRouterData>> for HelcimP item: &HelcimRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => Self::try_from((item, &req_card)), - api_models::payments::PaymentMethodData::BankTransfer(_) => { + domain::PaymentMethodData::Card(req_card) => Self::try_from((item, &req_card)), + domain::PaymentMethodData::BankTransfer(_) => { Err(errors::ConnectorError::NotImplemented("Payment Method".to_string()).into()) } - api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Helcim"), - ))?, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Helcim"), + ))? + } } } } diff --git a/crates/router/src/connector/iatapay/transformers.rs b/crates/router/src/connector/iatapay/transformers.rs index 0a5f592c76..8e45b96e69 100644 --- a/crates/router/src/connector/iatapay/transformers.rs +++ b/crates/router/src/connector/iatapay/transformers.rs @@ -12,7 +12,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, PaymentsAuthorizeData}, + types::{self, api, domain, storage::enums, PaymentsAuthorizeData}, }; type Error = error_stack::Report; @@ -149,22 +149,22 @@ impl }; let return_url = item.router_data.get_return_url()?; let payer_info = match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Upi(upi_data) => upi_data.vpa_id.map(|id| PayerInfo { + domain::PaymentMethodData::Upi(upi_data) => upi_data.vpa_id.map(|id| PayerInfo { token_id: id.switch_strategy(), }), - api::PaymentMethodData::Card(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => None, + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => None, }; let payload = Self { merchant_id: IatapayAuthType::try_from(&item.router_data.connector_auth_type)? diff --git a/crates/router/src/connector/klarna.rs b/crates/router/src/connector/klarna.rs index 91ef719e5e..0d1a37d1a4 100644 --- a/crates/router/src/connector/klarna.rs +++ b/crates/router/src/connector/klarna.rs @@ -1,7 +1,6 @@ pub mod transformers; use std::fmt::Debug; -use api_models::payments as api_payments; use common_utils::request::RequestContent; use error_stack::{report, ResultExt}; use transformers as klarna; @@ -21,6 +20,7 @@ use crate::{ types::{ self, api::{self, ConnectorCommon}, + domain, storage::enums as storage_enums, }, utils::BytesExt, @@ -307,9 +307,9 @@ impl .ok_or_else(connector_utils::missing_field_err("payment_method_type"))?; match payment_method_data { - api_payments::PaymentMethodData::PayLater(api_payments::PayLaterData::KlarnaSdk { - token, - }) => match (payment_experience, payment_method_type) { + domain::PaymentMethodData::PayLater( + api_models::payments::PayLaterData::KlarnaSdk { token }, + ) => match (payment_experience, payment_method_type) { ( storage_enums::PaymentExperience::InvokeSdkClient, storage_enums::PaymentMethodType::Klarna, @@ -415,20 +415,20 @@ impl })), }, - api_payments::PaymentMethodData::Card(_) - | api_payments::PaymentMethodData::CardRedirect(_) - | api_payments::PaymentMethodData::Wallet(_) - | api_payments::PaymentMethodData::PayLater(_) - | api_payments::PaymentMethodData::BankRedirect(_) - | api_payments::PaymentMethodData::BankDebit(_) - | api_payments::PaymentMethodData::BankTransfer(_) - | api_payments::PaymentMethodData::Crypto(_) - | api_payments::PaymentMethodData::MandatePayment - | api_payments::PaymentMethodData::Reward - | api_payments::PaymentMethodData::Upi(_) - | api_payments::PaymentMethodData::Voucher(_) - | api_payments::PaymentMethodData::GiftCard(_) - | api_payments::PaymentMethodData::CardToken(_) => Err(error_stack::report!( + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => Err(error_stack::report!( errors::ConnectorError::MismatchedPaymentData )), } diff --git a/crates/router/src/connector/mollie/transformers.rs b/crates/router/src/connector/mollie/transformers.rs index 7acf81db29..30856035fd 100644 --- a/crates/router/src/connector/mollie/transformers.rs +++ b/crates/router/src/connector/mollie/transformers.rs @@ -13,7 +13,7 @@ use crate::{ }, core::errors, services, types, - types::storage::enums as storage_enums, + types::{domain, storage::enums as storage_enums}, unimplemented_payment_method, }; @@ -169,7 +169,7 @@ impl TryFrom<&MollieRouterData<&types::PaymentsAuthorizeRouterData>> for MollieP { enums::CaptureMethod::Automatic => { match &item.router_data.request.payment_method_data { - api_models::payments::PaymentMethodData::Card(_) => { + domain::PaymentMethodData::Card(_) => { let pm_token = item.router_data.get_payment_method_token()?; Ok(PaymentMethodData::CreditCard(Box::new( CreditCardMethodData { @@ -188,13 +188,13 @@ impl TryFrom<&MollieRouterData<&types::PaymentsAuthorizeRouterData>> for MollieP }, ))) } - api_models::payments::PaymentMethodData::BankRedirect(ref redirect_data) => { + domain::PaymentMethodData::BankRedirect(ref redirect_data) => { PaymentMethodData::try_from(redirect_data) } - api_models::payments::PaymentMethodData::Wallet(ref wallet_data) => { + domain::PaymentMethodData::Wallet(ref wallet_data) => { get_payment_method_for_wallet(item.router_data, wallet_data) } - api_models::payments::PaymentMethodData::BankDebit(ref directdebit_data) => { + domain::PaymentMethodData::BankDebit(ref directdebit_data) => { PaymentMethodData::try_from(directdebit_data) } _ => Err( @@ -287,7 +287,7 @@ impl TryFrom<&types::TokenizationRouterData> for MollieCardTokenRequest { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match item.request.payment_method_data.clone() { - api_models::payments::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let auth = MollieAuthType::try_from(&item.connector_auth_type)?; let card_holder = ccard .card_holder_name diff --git a/crates/router/src/connector/multisafepay/transformers.rs b/crates/router/src/connector/multisafepay/transformers.rs index f6051ea05d..8c6d23ca47 100644 --- a/crates/router/src/connector/multisafepay/transformers.rs +++ b/crates/router/src/connector/multisafepay/transformers.rs @@ -10,7 +10,7 @@ use crate::{ core::errors, pii::Secret, services, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Debug, Serialize)] @@ -278,9 +278,9 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> item: &MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { let payment_type = match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref _ccard) => Type::Direct, - api::PaymentMethodData::MandatePayment => Type::Direct, - api::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { + domain::PaymentMethodData::Card(ref _ccard) => Type::Direct, + domain::PaymentMethodData::MandatePayment => Type::Direct, + domain::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { api::WalletData::GooglePay(_) => Type::Direct, api::WalletData::PaypalRedirect(_) => Type::Redirect, api::WalletData::AliPayQr(_) @@ -310,15 +310,15 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> utils::get_unimplemented_payment_method_error_message("multisafepay"), ))?, }, - api::PaymentMethodData::PayLater(ref _paylater) => Type::Redirect, + domain::PaymentMethodData::PayLater(ref _paylater) => Type::Redirect, _ => Type::Redirect, }; let gateway = match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { Some(Gateway::try_from(ccard.get_card_issuer()?)?) } - api::PaymentMethodData::Wallet(ref wallet_data) => Some(match wallet_data { + domain::PaymentMethodData::Wallet(ref wallet_data) => Some(match wallet_data { api::WalletData::GooglePay(_) => Gateway::Googlepay, api::WalletData::PaypalRedirect(_) => Gateway::Paypal, api::WalletData::AliPayQr(_) @@ -348,26 +348,28 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> utils::get_unimplemented_payment_method_error_message("multisafepay"), ))?, }), - api::PaymentMethodData::PayLater( + domain::PaymentMethodData::PayLater( api_models::payments::PayLaterData::KlarnaRedirect { billing_email: _, billing_country: _, }, ) => Some(Gateway::Klarna), - api::PaymentMethodData::MandatePayment => None, - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("multisafepay"), - ))?, + domain::PaymentMethodData::MandatePayment => None, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("multisafepay"), + ))? + } }; let description = item.router_data.get_description()?; let payment_options = PaymentOptions { @@ -421,7 +423,7 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> }; let gateway_info = match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => Some(GatewayInfo::Card(CardInfo { + domain::PaymentMethodData::Card(ref ccard) => Some(GatewayInfo::Card(CardInfo { card_number: Some(ccard.card_number.clone()), card_expiry_date: Some(Secret::new( (format!( @@ -438,7 +440,7 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> moto: None, term_url: None, })), - api::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { api::WalletData::GooglePay(ref google_pay) => { Some(GatewayInfo::Wallet(WalletInfo::GooglePay({ GpayInfo { @@ -476,7 +478,7 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> utils::get_unimplemented_payment_method_error_message("multisafepay"), ))?, }, - api::PaymentMethodData::PayLater(ref paylater) => { + domain::PaymentMethodData::PayLater(ref paylater) => { Some(GatewayInfo::PayLater(PayLaterInfo { email: Some(match paylater { api_models::payments::PayLaterData::KlarnaRedirect { @@ -502,19 +504,21 @@ impl TryFrom<&MultisafepayRouterData<&types::PaymentsAuthorizeRouterData>> }), })) } - api::PaymentMethodData::MandatePayment => None, - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("multisafepay"), - ))?, + domain::PaymentMethodData::MandatePayment => None, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("multisafepay"), + ))? + } }; Ok(Self { diff --git a/crates/router/src/connector/nexinets/transformers.rs b/crates/router/src/connector/nexinets/transformers.rs index 703c24e56e..210910d3e7 100644 --- a/crates/router/src/connector/nexinets/transformers.rs +++ b/crates/router/src/connector/nexinets/transformers.rs @@ -1,7 +1,7 @@ -use api_models::payments::PaymentMethodData; use base64::Engine; use cards::CardNumber; use common_utils::errors::CustomResult; +use domain::PaymentMethodData; use error_stack::ResultExt; use masking::{ExposeInterface, PeekInterface, Secret}; use serde::{Deserialize, Serialize}; @@ -14,7 +14,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, }; #[derive(Debug, Serialize)] @@ -633,7 +633,7 @@ fn get_payment_details_and_product( fn get_card_data( item: &types::PaymentsAuthorizeRouterData, - card: &api_models::payments::Card, + card: &domain::payments::Card, ) -> Result { let (card_data, cof_contract) = match item.request.is_mandate_payment() { true => { @@ -676,7 +676,7 @@ fn get_applepay_details( } fn get_card_details( - req_card: &api_models::payments::Card, + req_card: &domain::payments::Card, ) -> Result { Ok(CardDetails { card_number: req_card.card_number.clone(), diff --git a/crates/router/src/connector/nmi/transformers.rs b/crates/router/src/connector/nmi/transformers.rs index 2358e0f6cc..79e71ca72d 100644 --- a/crates/router/src/connector/nmi/transformers.rs +++ b/crates/router/src/connector/nmi/transformers.rs @@ -17,7 +17,7 @@ use crate::{ }, core::errors, services, - types::{self, api, storage::enums, transformers::ForeignFrom, ConnectorAuthType}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom, ConnectorAuthType}, }; type Error = Report; @@ -136,10 +136,10 @@ impl TryFrom<&types::PaymentsPreProcessingRouterData> for NmiVaultRequest { } fn get_card_details( - payment_method_data: Option, + payment_method_data: Option, ) -> CustomResult<(CardNumber, Secret, Secret), errors::ConnectorError> { match payment_method_data { - Some(api::PaymentMethodData::Card(ref card_details)) => Ok(( + Some(domain::PaymentMethodData::Card(ref card_details)) => Ok(( card_details.card_number.clone(), utils::CardData::get_card_expiry_month_year_2_digit_with_delimiter( card_details, @@ -513,14 +513,12 @@ impl TryFrom<&NmiRouterData<&types::PaymentsAuthorizeRouterData>> for NmiPayment } } -impl TryFrom<&api_models::payments::PaymentMethodData> for PaymentMethod { +impl TryFrom<&domain::PaymentMethodData> for PaymentMethod { type Error = Error; - fn try_from( - payment_method_data: &api_models::payments::PaymentMethodData, - ) -> Result { + fn try_from(payment_method_data: &domain::PaymentMethodData) -> Result { match &payment_method_data { - api::PaymentMethodData::Card(ref card) => Ok(Self::try_from(card)?), - api::PaymentMethodData::Wallet(ref wallet_type) => match wallet_type { + domain::PaymentMethodData::Card(ref card) => Ok(Self::try_from(card)?), + domain::PaymentMethodData::Wallet(ref wallet_type) => match wallet_type { api_models::payments::WalletData::GooglePay(ref googlepay_data) => { Ok(Self::from(googlepay_data)) } @@ -557,28 +555,30 @@ impl TryFrom<&api_models::payments::PaymentMethodData> for PaymentMethod { .into()) } }, - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("nmi"), - ) - .into()), + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("nmi"), + ) + .into()) + } } } } -impl TryFrom<&api_models::payments::Card> for PaymentMethod { +impl TryFrom<&domain::payments::Card> for PaymentMethod { type Error = Error; - fn try_from(card: &api_models::payments::Card) -> Result { + fn try_from(card: &domain::payments::Card) -> Result { let ccexp = utils::CardData::get_card_expiry_month_year_2_digit_with_delimiter( card, "".to_string(), diff --git a/crates/router/src/connector/noon/transformers.rs b/crates/router/src/connector/noon/transformers.rs index 38202291b4..c2031fd895 100644 --- a/crates/router/src/connector/noon/transformers.rs +++ b/crates/router/src/connector/noon/transformers.rs @@ -10,7 +10,7 @@ use crate::{ }, core::{errors, mandate::MandateBehaviour}, services, - types::{self, api, storage::enums, transformers::ForeignFrom, ErrorResponse}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom, ErrorResponse}, }; // These needs to be accepted from SDK, need to be done after 1.0.0 stability as API contract will change @@ -239,14 +239,16 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for NoonPaymentsRequest { ), _ => ( match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => Ok(NoonPaymentData::Card(NoonCard { - name_on_card: req_card.card_holder_name.clone(), - number_plain: req_card.card_number.clone(), - expiry_month: req_card.card_exp_month.clone(), - expiry_year: req_card.get_expiry_year_4_digit(), - cvv: req_card.card_cvc, - })), - api::PaymentMethodData::Wallet(wallet_data) => match wallet_data.clone() { + domain::PaymentMethodData::Card(req_card) => { + Ok(NoonPaymentData::Card(NoonCard { + name_on_card: req_card.card_holder_name.clone(), + number_plain: req_card.card_number.clone(), + expiry_month: req_card.card_exp_month.clone(), + expiry_year: req_card.get_expiry_year_4_digit(), + cvv: req_card.card_cvc, + })) + } + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data.clone() { api_models::payments::WalletData::GooglePay(google_pay_data) => { Ok(NoonPaymentData::GooglePay(NoonGooglePay { api_version_minor: GOOGLEPAY_API_VERSION_MINOR, @@ -312,18 +314,18 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for NoonPaymentsRequest { )) } }, - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment {} - | api::PaymentMethodData::Reward {} - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment {} + | domain::PaymentMethodData::Reward {} + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( conn_utils::get_unimplemented_payment_method_error_message("Noon"), )) diff --git a/crates/router/src/connector/nuvei/transformers.rs b/crates/router/src/connector/nuvei/transformers.rs index 6753dfe203..00da2b9ae5 100644 --- a/crates/router/src/connector/nuvei/transformers.rs +++ b/crates/router/src/connector/nuvei/transformers.rs @@ -20,7 +20,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, transformers::ForeignTryFrom, BrowserInformation}, + types::{self, api, domain, storage::enums, transformers::ForeignTryFrom, BrowserInformation}, utils::OptionExt, }; @@ -424,11 +424,12 @@ impl } } -#[derive(Debug, Default)] +#[derive(Debug)] pub struct NuveiCardDetails { - card: payments::Card, + card: domain::Card, three_d: Option, } + impl TryFrom for NuveiPaymentsRequest { type Error = error_stack::Report; fn try_from(gpay_data: payments::GooglePayWalletData) -> Result { @@ -748,9 +749,9 @@ impl ) -> Result { let item = data.0; let request_data = match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(card) => get_card_info(item, &card), - api::PaymentMethodData::MandatePayment => Self::try_from(item), - api::PaymentMethodData::Wallet(wallet) => match wallet { + domain::PaymentMethodData::Card(card) => get_card_info(item, &card), + domain::PaymentMethodData::MandatePayment => Self::try_from(item), + domain::PaymentMethodData::Wallet(wallet) => match wallet { payments::WalletData::GooglePay(gpay_data) => Self::try_from(gpay_data), payments::WalletData::ApplePay(apple_pay_data) => Ok(Self::from(apple_pay_data)), payments::WalletData::PaypalRedirect(_) => Self::foreign_try_from(( @@ -787,7 +788,7 @@ impl .into()) } }, - api::PaymentMethodData::BankRedirect(redirect) => match redirect { + domain::PaymentMethodData::BankRedirect(redirect) => match redirect { payments::BankRedirectData::Eps { .. } => Self::foreign_try_from(( AlternativePaymentMethodType::Eps, Some(redirect), @@ -827,7 +828,7 @@ impl .into()) } }, - api::PaymentMethodData::PayLater(pay_later_data) => match pay_later_data { + domain::PaymentMethodData::PayLater(pay_later_data) => match pay_later_data { payments::PayLaterData::KlarnaRedirect { .. } => { get_pay_later_info(AlternativePaymentMethodType::Klarna, item) } @@ -846,15 +847,15 @@ impl .into()) } }, - payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("nuvei"), ) @@ -890,7 +891,7 @@ impl fn get_card_info( item: &types::RouterData, - card_details: &payments::Card, + card_details: &domain::Card, ) -> Result> { let browser_information = item.request.browser_info.clone(); let related_transaction_id = if item.is_three_ds() { @@ -1026,26 +1027,26 @@ impl TryFrom<(&types::PaymentsCompleteAuthorizeRouterData, Secret)> ) -> Result { let item = data.0; let request_data = match item.request.payment_method_data.clone() { - Some(api::PaymentMethodData::Card(card)) => Ok(Self { + Some(domain::PaymentMethodData::Card(card)) => Ok(Self { payment_option: PaymentOption::from(NuveiCardDetails { card, three_d: None, }), ..Default::default() }), - Some(api::PaymentMethodData::Wallet(..)) - | Some(api::PaymentMethodData::PayLater(..)) - | Some(api::PaymentMethodData::BankDebit(..)) - | Some(api::PaymentMethodData::BankRedirect(..)) - | Some(api::PaymentMethodData::BankTransfer(..)) - | Some(api::PaymentMethodData::Crypto(..)) - | Some(api::PaymentMethodData::MandatePayment) - | Some(api::PaymentMethodData::GiftCard(..)) - | Some(api::PaymentMethodData::Voucher(..)) - | Some(api::PaymentMethodData::CardRedirect(..)) - | Some(api::PaymentMethodData::Reward) - | Some(api::PaymentMethodData::Upi(..)) - | Some(api::PaymentMethodData::CardToken(..)) + Some(domain::PaymentMethodData::Wallet(..)) + | Some(domain::PaymentMethodData::PayLater(..)) + | Some(domain::PaymentMethodData::BankDebit(..)) + | Some(domain::PaymentMethodData::BankRedirect(..)) + | Some(domain::PaymentMethodData::BankTransfer(..)) + | Some(domain::PaymentMethodData::Crypto(..)) + | Some(domain::PaymentMethodData::MandatePayment) + | Some(domain::PaymentMethodData::GiftCard(..)) + | Some(domain::PaymentMethodData::Voucher(..)) + | Some(domain::PaymentMethodData::CardRedirect(..)) + | Some(domain::PaymentMethodData::Reward) + | Some(domain::PaymentMethodData::Upi(..)) + | Some(domain::PaymentMethodData::CardToken(..)) | None => Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("nuvei"), )), diff --git a/crates/router/src/connector/opayo/transformers.rs b/crates/router/src/connector/opayo/transformers.rs index 94ab62b4f7..008643f143 100644 --- a/crates/router/src/connector/opayo/transformers.rs +++ b/crates/router/src/connector/opayo/transformers.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use crate::{ connector::utils::{self, PaymentsAuthorizeRequestData}, core::errors, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; #[derive(Default, Debug, Serialize, Eq, PartialEq)] @@ -27,7 +27,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for OpayoPaymentsRequest { type Error = error_stack::Report; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => { + domain::PaymentMethodData::Card(req_card) => { let card = OpayoCard { name: req_card .card_holder_name @@ -43,22 +43,24 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for OpayoPaymentsRequest { card, }) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Opayo"), - ) - .into()), + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Opayo"), + ) + .into()) + } } } } diff --git a/crates/router/src/connector/payeezy/transformers.rs b/crates/router/src/connector/payeezy/transformers.rs index 6d5d6db9dc..2b19b10b43 100644 --- a/crates/router/src/connector/payeezy/transformers.rs +++ b/crates/router/src/connector/payeezy/transformers.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use crate::{ connector::utils::{self, CardData}, core::errors, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, }; #[derive(Debug, Serialize)] pub struct PayeezyRouterData { @@ -237,7 +237,7 @@ fn get_payment_method_data( item: &PayeezyRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result> { match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref card) => { + domain::PaymentMethodData::Card(ref card) => { let card_type = PayeezyCardType::try_from(card.get_card_issuer()?)?; let payeezy_card = PayeezyCard { card_type, @@ -252,19 +252,19 @@ fn get_payment_method_data( Ok(PayeezyPaymentMethod::PayeezyCard(payeezy_card)) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Payeezy"), ))?, } diff --git a/crates/router/src/connector/payme/transformers.rs b/crates/router/src/connector/payme/transformers.rs index b577ae9f20..d3b9e72e98 100644 --- a/crates/router/src/connector/payme/transformers.rs +++ b/crates/router/src/connector/payme/transformers.rs @@ -1,9 +1,6 @@ use std::collections::HashMap; -use api_models::{ - enums::{AuthenticationType, PaymentMethod}, - payments::PaymentMethodData, -}; +use api_models::enums::{AuthenticationType, PaymentMethod}; use common_utils::pii; use error_stack::ResultExt; use masking::{ExposeInterface, Secret}; @@ -20,7 +17,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, MandateReference}, + types::{self, api, domain, domain::PaymentMethodData, storage::enums, MandateReference}, unimplemented_payment_method, }; @@ -640,7 +637,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PayRequest { type Error = error_stack::Report; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => { + domain::PaymentMethodData::Card(req_card) => { let card = PaymeCard { credit_card_cvv: req_card.card_cvc.clone(), credit_card_exp: req_card @@ -662,21 +659,23 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PayRequest { language: LANGUAGE.to_string(), }) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("payme"), - ))?, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("payme"), + ))? + } } } } @@ -689,7 +688,7 @@ impl TryFrom<&types::PaymentsCompleteAuthorizeRouterData> for Pay3dsRequest { type Error = error_stack::Report; fn try_from(item: &types::PaymentsCompleteAuthorizeRouterData) -> Result { match item.request.payment_method_data.clone() { - Some(api::PaymentMethodData::Card(_)) => { + Some(domain::PaymentMethodData::Card(_)) => { let buyer_email = item.request.get_email()?; let buyer_name = item.get_billing_address()?.get_full_name()?; @@ -720,19 +719,19 @@ impl TryFrom<&types::PaymentsCompleteAuthorizeRouterData> for Pay3dsRequest { meta_data_jwt: Secret::new(jwt_data.meta_data), }) } - Some(api::PaymentMethodData::CardRedirect(_)) - | Some(api::PaymentMethodData::Wallet(_)) - | Some(api::PaymentMethodData::PayLater(_)) - | Some(api::PaymentMethodData::BankRedirect(_)) - | Some(api::PaymentMethodData::BankDebit(_)) - | Some(api::PaymentMethodData::BankTransfer(_)) - | Some(api::PaymentMethodData::Crypto(_)) - | Some(api::PaymentMethodData::MandatePayment) - | Some(api::PaymentMethodData::Reward) - | Some(api::PaymentMethodData::Upi(_)) - | Some(api::PaymentMethodData::Voucher(_)) - | Some(api::PaymentMethodData::GiftCard(_)) - | Some(api::PaymentMethodData::CardToken(_)) + Some(domain::PaymentMethodData::CardRedirect(_)) + | Some(domain::PaymentMethodData::Wallet(_)) + | Some(domain::PaymentMethodData::PayLater(_)) + | Some(domain::PaymentMethodData::BankRedirect(_)) + | Some(domain::PaymentMethodData::BankDebit(_)) + | Some(domain::PaymentMethodData::BankTransfer(_)) + | Some(domain::PaymentMethodData::Crypto(_)) + | Some(domain::PaymentMethodData::MandatePayment) + | Some(domain::PaymentMethodData::Reward) + | Some(domain::PaymentMethodData::Upi(_)) + | Some(domain::PaymentMethodData::Voucher(_)) + | Some(domain::PaymentMethodData::GiftCard(_)) + | Some(domain::PaymentMethodData::CardToken(_)) | None => { Err(errors::ConnectorError::NotImplemented("Tokenize Flow".to_string()).into()) } @@ -744,7 +743,7 @@ impl TryFrom<&types::TokenizationRouterData> for CaptureBuyerRequest { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(req_card) => { + domain::PaymentMethodData::Card(req_card) => { let seller_payme_id = PaymeAuthType::try_from(&item.connector_auth_type)?.seller_payme_id; let card = PaymeCard { @@ -758,19 +757,19 @@ impl TryFrom<&types::TokenizationRouterData> for CaptureBuyerRequest { seller_payme_id, }) } - api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented("Tokenize Flow".to_string()).into()) } } diff --git a/crates/router/src/connector/paypal/transformers.rs b/crates/router/src/connector/paypal/transformers.rs index 439184cafc..aff3be9bd2 100644 --- a/crates/router/src/connector/paypal/transformers.rs +++ b/crates/router/src/connector/paypal/transformers.rs @@ -16,8 +16,8 @@ use crate::{ core::errors, services, types::{ - self, api, storage::enums as storage_enums, transformers::ForeignFrom, ConnectorAuthType, - VerifyWebhookSourceResponseData, + self, api, domain, storage::enums as storage_enums, transformers::ForeignFrom, + ConnectorAuthType, VerifyWebhookSourceResponseData, }, }; @@ -425,7 +425,7 @@ impl TryFrom<&PaypalRouterData<&types::PaymentsAuthorizeRouterData>> for PaypalP PaypalAuthType::try_from(&item.router_data.connector_auth_type)?; let payee = get_payee(&paypal_auth); match item.router_data.request.payment_method_data { - api_models::payments::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { let intent = if item.router_data.request.is_auto_capture()? { PaypalPaymentIntent::Capture } else { @@ -476,7 +476,7 @@ impl TryFrom<&PaypalRouterData<&types::PaymentsAuthorizeRouterData>> for PaypalP payment_source, }) } - api::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(ref wallet_data) => match wallet_data { api_models::payments::WalletData::PaypalRedirect(_) => { let intent = if item.router_data.request.is_auto_capture()? { PaypalPaymentIntent::Capture @@ -553,7 +553,7 @@ impl TryFrom<&PaypalRouterData<&types::PaymentsAuthorizeRouterData>> for PaypalP ))? } }, - api::PaymentMethodData::BankRedirect(ref bank_redirection_data) => { + domain::PaymentMethodData::BankRedirect(ref bank_redirection_data) => { let intent = if item.router_data.request.is_auto_capture()? { PaypalPaymentIntent::Capture } else { @@ -586,34 +586,30 @@ impl TryFrom<&PaypalRouterData<&types::PaymentsAuthorizeRouterData>> for PaypalP payment_source, }) } - api_models::payments::PaymentMethodData::CardRedirect(ref card_redirect_data) => { + domain::PaymentMethodData::CardRedirect(ref card_redirect_data) => { Self::try_from(card_redirect_data) } - api_models::payments::PaymentMethodData::PayLater(ref paylater_data) => { - Self::try_from(paylater_data) - } - api_models::payments::PaymentMethodData::BankDebit(ref bank_debit_data) => { + domain::PaymentMethodData::PayLater(ref paylater_data) => Self::try_from(paylater_data), + domain::PaymentMethodData::BankDebit(ref bank_debit_data) => { Self::try_from(bank_debit_data) } - api_models::payments::PaymentMethodData::BankTransfer(ref bank_transfer_data) => { + domain::PaymentMethodData::BankTransfer(ref bank_transfer_data) => { Self::try_from(bank_transfer_data.as_ref()) } - api_models::payments::PaymentMethodData::Voucher(ref voucher_data) => { - Self::try_from(voucher_data) - } - api_models::payments::PaymentMethodData::GiftCard(ref giftcard_data) => { + domain::PaymentMethodData::Voucher(ref voucher_data) => Self::try_from(voucher_data), + domain::PaymentMethodData::GiftCard(ref giftcard_data) => { Self::try_from(giftcard_data.as_ref()) } - api_models::payments::PaymentMethodData::MandatePayment => { + domain::PaymentMethodData::MandatePayment => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Paypal"), ) .into()) } - api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Paypal"), ) @@ -623,14 +619,14 @@ impl TryFrom<&PaypalRouterData<&types::PaymentsAuthorizeRouterData>> for PaypalP } } -impl TryFrom<&api_models::payments::CardRedirectData> for PaypalPaymentsRequest { +impl TryFrom<&domain::payments::CardRedirectData> for PaypalPaymentsRequest { type Error = error_stack::Report; - fn try_from(value: &api_models::payments::CardRedirectData) -> Result { + fn try_from(value: &domain::payments::CardRedirectData) -> Result { match value { - api_models::payments::CardRedirectData::Knet {} - | api_models::payments::CardRedirectData::Benefit {} - | api_models::payments::CardRedirectData::MomoAtm {} - | api_models::payments::CardRedirectData::CardRedirect {} => { + domain::payments::CardRedirectData::Knet {} + | domain::payments::CardRedirectData::Benefit {} + | domain::payments::CardRedirectData::MomoAtm {} + | domain::payments::CardRedirectData::CardRedirect {} => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Paypal"), ) diff --git a/crates/router/src/connector/payu/transformers.rs b/crates/router/src/connector/payu/transformers.rs index 9484749ff2..93add6f296 100644 --- a/crates/router/src/connector/payu/transformers.rs +++ b/crates/router/src/connector/payu/transformers.rs @@ -8,7 +8,7 @@ use crate::{ consts, core::errors, pii::Secret, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; const WALLET_IDENTIFIER: &str = "PBL"; @@ -70,7 +70,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PayuPaymentsRequest { fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { let auth_type = PayuAuthType::try_from(&item.connector_auth_type)?; let payment_method = match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => Ok(PayuPaymentMethod { + domain::PaymentMethodData::Card(ccard) => Ok(PayuPaymentMethod { pay_method: PayuPaymentMethodData::Card(PayuCard::Card { number: ccard.card_number, expiration_month: ccard.card_exp_month, @@ -78,7 +78,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PayuPaymentsRequest { cvv: ccard.card_cvc, }), }), - api::PaymentMethodData::Wallet(wallet_data) => match wallet_data { + domain::PaymentMethodData::Wallet(wallet_data) => match wallet_data { api_models::payments::WalletData::GooglePay(data) => Ok(PayuPaymentMethod { pay_method: PayuPaymentMethodData::Wallet({ PayuWallet { diff --git a/crates/router/src/connector/placetopay/transformers.rs b/crates/router/src/connector/placetopay/transformers.rs index 152e315de1..6ad3d3c203 100644 --- a/crates/router/src/connector/placetopay/transformers.rs +++ b/crates/router/src/connector/placetopay/transformers.rs @@ -1,4 +1,3 @@ -use api_models::payments; use common_utils::date_time; use diesel_models::enums; use error_stack::ResultExt; @@ -13,7 +12,7 @@ use crate::{ }, consts, core::errors, - types::{self, api, storage::enums as storage_enums}, + types::{self, api, domain, storage::enums as storage_enums}, }; pub struct PlacetopayRouterData { @@ -126,7 +125,7 @@ impl TryFrom<&PlacetopayRouterData<&types::PaymentsAuthorizeRouterData>> }, }; match item.router_data.request.payment_method_data.clone() { - payments::PaymentMethodData::Card(req_card) => { + domain::PaymentMethodData::Card(req_card) => { let card = PlacetopayCard { number: req_card.card_number.clone(), expiration: req_card @@ -144,19 +143,19 @@ impl TryFrom<&PlacetopayRouterData<&types::PaymentsAuthorizeRouterData>> }, }) } - payments::PaymentMethodData::Wallet(_) - | payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankRedirect(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::BankTransfer(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::Voucher(_) - | payments::PaymentMethodData::GiftCard(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Placetopay"), ) diff --git a/crates/router/src/connector/powertranz/transformers.rs b/crates/router/src/connector/powertranz/transformers.rs index 26a8e4fc69..b8c20cf0fc 100644 --- a/crates/router/src/connector/powertranz/transformers.rs +++ b/crates/router/src/connector/powertranz/transformers.rs @@ -1,4 +1,3 @@ -use api_models::payments::Card; use common_utils::pii::{Email, IpAddress}; use diesel_models::enums::RefundStatus; use masking::{ExposeInterface, Secret}; @@ -10,7 +9,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, }; const ISO_SUCCESS_CODES: [&str; 7] = ["00", "3D0", "3D1", "HP0", "TK0", "SP4", "FC0"]; @@ -100,24 +99,26 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PowertranzPaymentsRequest type Error = error_stack::Report; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { let source = match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(card) => Source::try_from(&card), - api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotSupported { - message: utils::SELECTED_PAYMENT_METHOD.to_string(), - connector: "powertranz", + domain::PaymentMethodData::Card(card) => Source::try_from(&card), + domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotSupported { + message: utils::SELECTED_PAYMENT_METHOD.to_string(), + connector: "powertranz", + } + .into()) } - .into()), }?; // let billing_address = get_address_details(&item.address.billing, &item.request.email); // let shipping_address = get_address_details(&item.address.shipping, &item.request.email); @@ -212,9 +213,9 @@ impl TryFrom<&types::BrowserInformation> for BrowserInfo { }) }*/ -impl TryFrom<&Card> for Source { +impl TryFrom<&domain::Card> for Source { type Error = error_stack::Report; - fn try_from(card: &Card) -> Result { + fn try_from(card: &domain::Card) -> Result { let card = PowertranzCard { cardholder_name: card .card_holder_name diff --git a/crates/router/src/connector/prophetpay/transformers.rs b/crates/router/src/connector/prophetpay/transformers.rs index 06d23af33a..570bf8d2b3 100644 --- a/crates/router/src/connector/prophetpay/transformers.rs +++ b/crates/router/src/connector/prophetpay/transformers.rs @@ -11,7 +11,7 @@ use crate::{ consts as const_val, core::errors, services, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, }; pub struct ProphetpayRouterData { @@ -136,8 +136,8 @@ impl TryFrom<&ProphetpayRouterData<&types::PaymentsAuthorizeRouterData>> ) -> Result { if item.router_data.request.currency == api_models::enums::Currency::USD { match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::CardRedirect( - api_models::payments::CardRedirectData::CardRedirect {}, + domain::PaymentMethodData::CardRedirect( + domain::payments::CardRedirectData::CardRedirect {}, ) => { let auth_data = ProphetpayAuthType::try_from(&item.router_data.connector_auth_type)?; diff --git a/crates/router/src/connector/rapyd/transformers.rs b/crates/router/src/connector/rapyd/transformers.rs index d51a322635..5d46148b01 100644 --- a/crates/router/src/connector/rapyd/transformers.rs +++ b/crates/router/src/connector/rapyd/transformers.rs @@ -9,7 +9,7 @@ use crate::{ core::errors, pii::Secret, services, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, utils::OptionExt, }; @@ -124,7 +124,7 @@ impl TryFrom<&RapydRouterData<&types::PaymentsAuthorizeRouterData>> for RapydPay _ => (None, None), }; let payment_method = match item.router_data.request.payment_method_data { - api_models::payments::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { Some(PaymentMethod { pm_type: "in_amex_card".to_owned(), //[#369] Map payment method type based on country fields: Some(PaymentFields { @@ -141,7 +141,7 @@ impl TryFrom<&RapydRouterData<&types::PaymentsAuthorizeRouterData>> for RapydPay digital_wallet: None, }) } - api_models::payments::PaymentMethodData::Wallet(ref wallet_data) => { + domain::PaymentMethodData::Wallet(ref wallet_data) => { let digital_wallet = match wallet_data { api_models::payments::WalletData::GooglePay(data) => Some(RapydWallet { payment_type: "google_pay".to_string(), diff --git a/crates/router/src/connector/shift4/transformers.rs b/crates/router/src/connector/shift4/transformers.rs index 416dd8fd9d..72a8e299b9 100644 --- a/crates/router/src/connector/shift4/transformers.rs +++ b/crates/router/src/connector/shift4/transformers.rs @@ -13,7 +13,7 @@ use crate::{ }, core::errors, pii, services, - types::{self, api, storage::enums, transformers::ForeignFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignFrom}, }; type Error = error_stack::Report; @@ -148,26 +148,26 @@ impl TryFrom<&types::RouterData, ) -> Result { match item.request.payment_method_data { - payments::PaymentMethodData::Card(ref ccard) => Self::try_from((item, ccard)), - payments::PaymentMethodData::BankRedirect(ref redirect) => { + domain::PaymentMethodData::Card(ref ccard) => Self::try_from((item, ccard)), + domain::PaymentMethodData::BankRedirect(ref redirect) => { Self::try_from((item, redirect)) } - payments::PaymentMethodData::Wallet(ref wallet_data) => Self::try_from(wallet_data), - payments::PaymentMethodData::BankTransfer(ref bank_transfer_data) => { + domain::PaymentMethodData::Wallet(ref wallet_data) => Self::try_from(wallet_data), + domain::PaymentMethodData::BankTransfer(ref bank_transfer_data) => { Self::try_from(bank_transfer_data.as_ref()) } - payments::PaymentMethodData::Voucher(ref voucher_data) => Self::try_from(voucher_data), - payments::PaymentMethodData::GiftCard(ref giftcard_data) => { + domain::PaymentMethodData::Voucher(ref voucher_data) => Self::try_from(voucher_data), + domain::PaymentMethodData::GiftCard(ref giftcard_data) => { Self::try_from(giftcard_data.as_ref()) } - payments::PaymentMethodData::CardRedirect(_) - | payments::PaymentMethodData::PayLater(_) - | payments::PaymentMethodData::BankDebit(_) - | payments::PaymentMethodData::Crypto(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::Reward - | payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Shift4"), ) @@ -282,14 +282,14 @@ impl TryFrom<&api_models::payments::GiftCardData> for Shift4PaymentMethod { impl TryFrom<( &types::RouterData, - &api_models::payments::Card, + &domain::Card, )> for Shift4PaymentMethod { type Error = Error; fn try_from( (item, card): ( &types::RouterData, - &api_models::payments::Card, + &domain::Card, ), ) -> Result { let card_object = Card { @@ -356,7 +356,7 @@ impl TryFrom<&types::RouterData, ) -> Result { match &item.request.payment_method_data { - Some(api::PaymentMethodData::Card(_)) => { + Some(domain::PaymentMethodData::Card(_)) => { let card_token: Shift4CardToken = to_connector_meta(item.request.connector_meta.clone())?; Ok(Self { @@ -371,19 +371,19 @@ impl TryFrom<&types::RouterData Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Shift4"), ) diff --git a/crates/router/src/connector/square/transformers.rs b/crates/router/src/connector/square/transformers.rs index 064e845740..eb44cb2c91 100644 --- a/crates/router/src/connector/square/transformers.rs +++ b/crates/router/src/connector/square/transformers.rs @@ -7,7 +7,7 @@ use crate::{ connector::utils::{self, CardData, PaymentsAuthorizeRequestData, RouterData}, core::errors, types::{ - self, api, + self, api, domain, storage::{self, enums}, }, unimplemented_payment_method, @@ -30,10 +30,10 @@ impl TryFrom<(&types::TokenizationRouterData, BankDebitData)> for SquareTokenReq } } -impl TryFrom<(&types::TokenizationRouterData, api_models::payments::Card)> for SquareTokenRequest { +impl TryFrom<(&types::TokenizationRouterData, domain::Card)> for SquareTokenRequest { type Error = error_stack::Report; fn try_from( - value: (&types::TokenizationRouterData, api_models::payments::Card), + value: (&types::TokenizationRouterData, domain::Card), ) -> Result { let (item, card_data) = value; let auth = SquareAuthType::try_from(&item.connector_auth_type) @@ -153,26 +153,28 @@ impl TryFrom<&types::TokenizationRouterData> for SquareTokenRequest { type Error = error_stack::Report; fn try_from(item: &types::TokenizationRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::BankDebit(bank_debit_data) => { Self::try_from((item, bank_debit_data)) } - api::PaymentMethodData::Card(card_data) => Self::try_from((item, card_data)), - api::PaymentMethodData::Wallet(wallet_data) => Self::try_from((item, wallet_data)), - api::PaymentMethodData::PayLater(pay_later_data) => { + domain::PaymentMethodData::Card(card_data) => Self::try_from((item, card_data)), + domain::PaymentMethodData::Wallet(wallet_data) => Self::try_from((item, wallet_data)), + domain::PaymentMethodData::PayLater(pay_later_data) => { Self::try_from((item, pay_later_data)) } - api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Square"), - ))?, + domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Square"), + ))? + } } } } @@ -250,7 +252,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for SquarePaymentsRequest { fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { let autocomplete = item.request.is_auto_capture()?; match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(_) => { + domain::PaymentMethodData::Card(_) => { let pm_token = item.get_payment_method_token()?; Ok(Self { idempotency_key: Secret::new(item.attempt_id.clone()), @@ -271,21 +273,23 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for SquarePaymentsRequest { }, }) } - api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Square"), - ))?, + domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Square"), + ))? + } } } } diff --git a/crates/router/src/connector/stax/transformers.rs b/crates/router/src/connector/stax/transformers.rs index 1d7cc63a93..b8ba6416a0 100644 --- a/crates/router/src/connector/stax/transformers.rs +++ b/crates/router/src/connector/stax/transformers.rs @@ -8,7 +8,7 @@ use crate::{ self, missing_field_err, CardData, PaymentsAuthorizeRequestData, RouterData, }, core::errors, - types::{self, api, storage::enums}, + types::{self, api, domain, storage::enums}, unimplemented_payment_method, }; @@ -71,7 +71,7 @@ impl TryFrom<&StaxRouterData<&types::PaymentsAuthorizeRouterData>> for StaxPayme let total = item.amount; match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::Card(_) => { + domain::PaymentMethodData::Card(_) => { let pm_token = item.router_data.get_payment_method_token()?; let pre_auth = !item.router_data.request.is_auto_capture()?; Ok(Self { @@ -88,7 +88,7 @@ impl TryFrom<&StaxRouterData<&types::PaymentsAuthorizeRouterData>> for StaxPayme idempotency_id: Some(item.router_data.connector_request_reference_id.clone()), }) } - api::PaymentMethodData::BankDebit( + domain::PaymentMethodData::BankDebit( api_models::payments::BankDebitData::AchBankDebit { .. }, ) => { let pm_token = item.router_data.get_payment_method_token()?; @@ -107,21 +107,23 @@ impl TryFrom<&StaxRouterData<&types::PaymentsAuthorizeRouterData>> for StaxPayme idempotency_id: Some(item.router_data.connector_request_reference_id.clone()), }) } - api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Stax"), - ))?, + domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Stax"), + ))? + } } } } @@ -223,7 +225,7 @@ impl TryFrom<&types::TokenizationRouterData> for StaxTokenRequest { fn try_from(item: &types::TokenizationRouterData) -> Result { let customer_id = item.get_connector_customer_id()?; match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(card_data) => { + domain::PaymentMethodData::Card(card_data) => { let stax_card_data = StaxTokenizeData { card_exp: card_data .get_card_expiry_month_year_2_digit_with_delimiter("".to_string())?, @@ -236,7 +238,7 @@ impl TryFrom<&types::TokenizationRouterData> for StaxTokenRequest { }; Ok(Self::Card(stax_card_data)) } - api_models::payments::PaymentMethodData::BankDebit( + domain::PaymentMethodData::BankDebit( api_models::payments::BankDebitData::AchBankDebit { billing_details, account_number, @@ -259,21 +261,23 @@ impl TryFrom<&types::TokenizationRouterData> for StaxTokenRequest { }; Ok(Self::Bank(stax_bank_data)) } - api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("Stax"), - ))?, + domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("Stax"), + ))? + } } } } diff --git a/crates/router/src/connector/stripe.rs b/crates/router/src/connector/stripe.rs index a3cf0d5c83..c966a22461 100644 --- a/crates/router/src/connector/stripe.rs +++ b/crates/router/src/connector/stripe.rs @@ -28,6 +28,7 @@ use crate::{ types::{ self, api::{self, ConnectorCommon}, + domain, }, utils::{crypto, ByteSliceExt, BytesExt, OptionExt}, }; @@ -822,7 +823,7 @@ impl connectors: &settings::Connectors, ) -> CustomResult { match &req.request.payment_method_data { - api_models::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { + domain::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { match bank_transfer_data.deref() { api_models::payments::BankTransferData::AchBankTransfer { .. } | api_models::payments::BankTransferData::MultibancoBankTransfer { .. } => { @@ -849,7 +850,7 @@ impl _connectors: &settings::Connectors, ) -> CustomResult { match &req.request.payment_method_data { - api_models::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { + domain::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { stripe::get_bank_transfer_request_data(req, bank_transfer_data.deref()) } _ => { @@ -889,7 +890,7 @@ impl res: types::Response, ) -> CustomResult { match &data.request.payment_method_data { - api_models::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { + domain::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { match bank_transfer_data.deref() { api_models::payments::BankTransferData::AchBankTransfer { .. } | api_models::payments::BankTransferData::MultibancoBankTransfer { .. } => { diff --git a/crates/router/src/connector/stripe/transformers.rs b/crates/router/src/connector/stripe/transformers.rs index 95d9b6dd90..4673cce4d8 100644 --- a/crates/router/src/connector/stripe/transformers.rs +++ b/crates/router/src/connector/stripe/transformers.rs @@ -25,7 +25,7 @@ use crate::{ core::errors, services, types::{ - self, api, + self, api, domain, storage::enums, transformers::{ForeignFrom, ForeignTryFrom}, }, @@ -1273,7 +1273,7 @@ fn get_bank_debit_data( } fn create_stripe_payment_method( - payment_method_data: &api_models::payments::PaymentMethodData, + payment_method_data: &domain::PaymentMethodData, auth_type: enums::AuthenticationType, payment_method_token: Option, is_customer_initiated_mandate_payment: Option, @@ -1287,7 +1287,7 @@ fn create_stripe_payment_method( error_stack::Report, > { match payment_method_data { - payments::PaymentMethodData::Card(card_details) => { + domain::PaymentMethodData::Card(card_details) => { let payment_method_auth_type = match auth_type { enums::AuthenticationType::ThreeDs => Auth3ds::Any, enums::AuthenticationType::NoThreeDs => Auth3ds::Automatic, @@ -1298,7 +1298,7 @@ fn create_stripe_payment_method( billing_address, )) } - payments::PaymentMethodData::PayLater(pay_later_data) => { + domain::PaymentMethodData::PayLater(pay_later_data) => { let stripe_pm_type = StripePaymentMethodType::try_from(pay_later_data)?; let billing_address = StripeBillingAddress::try_from((pay_later_data, stripe_pm_type))?; Ok(( @@ -1309,7 +1309,7 @@ fn create_stripe_payment_method( billing_address, )) } - payments::PaymentMethodData::BankRedirect(bank_redirect_data) => { + domain::PaymentMethodData::BankRedirect(bank_redirect_data) => { let billing_address = StripeBillingAddress::try_from(( bank_redirect_data, is_customer_initiated_mandate_payment, @@ -1319,7 +1319,7 @@ fn create_stripe_payment_method( Ok((bank_redirect_data, Some(pm_type), billing_address)) } - payments::PaymentMethodData::Wallet(wallet_data) => { + domain::PaymentMethodData::Wallet(wallet_data) => { let pm_type = ForeignTryFrom::foreign_try_from(wallet_data)?; let wallet_specific_data = StripePaymentMethodData::try_from((wallet_data, payment_method_token))?; @@ -1329,7 +1329,7 @@ fn create_stripe_payment_method( StripeBillingAddress::default(), )) } - payments::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::BankDebit(bank_debit_data) => { let (pm_type, bank_debit_data, billing_address) = get_bank_debit_data(bank_debit_data); let pm_data = StripePaymentMethodData::BankDebit(StripeBankDebitData { @@ -1338,7 +1338,7 @@ fn create_stripe_payment_method( Ok((pm_data, Some(pm_type), billing_address)) } - payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { + domain::PaymentMethodData::BankTransfer(bank_transfer_data) => { match bank_transfer_data.deref() { payments::BankTransferData::AchBankTransfer { billing_details } => Ok(( StripePaymentMethodData::BankTransfer(StripeBankTransferData::AchBankTransfer( @@ -1427,12 +1427,12 @@ fn create_stripe_payment_method( } } } - payments::PaymentMethodData::Crypto(_) => Err(errors::ConnectorError::NotImplemented( + domain::PaymentMethodData::Crypto(_) => Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), ) .into()), - payments::PaymentMethodData::GiftCard(giftcard_data) => match giftcard_data.deref() { + domain::PaymentMethodData::GiftCard(giftcard_data) => match giftcard_data.deref() { payments::GiftCardData::Givex(_) | payments::GiftCardData::PaySafeCard {} => { Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), @@ -1440,24 +1440,23 @@ fn create_stripe_payment_method( .into()) } }, - - payments::PaymentMethodData::CardRedirect(cardredirect_data) => match cardredirect_data { - payments::CardRedirectData::Knet {} - | payments::CardRedirectData::Benefit {} - | payments::CardRedirectData::MomoAtm {} - | payments::CardRedirectData::CardRedirect {} => { + domain::PaymentMethodData::CardRedirect(cardredirect_data) => match cardredirect_data { + domain::CardRedirectData::Knet {} + | domain::CardRedirectData::Benefit {} + | domain::CardRedirectData::MomoAtm {} + | domain::CardRedirectData::CardRedirect {} => { Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), ) .into()) } }, - payments::PaymentMethodData::Reward => Err(errors::ConnectorError::NotImplemented( + domain::PaymentMethodData::Reward => Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), ) .into()), - payments::PaymentMethodData::Voucher(voucher_data) => match voucher_data { + domain::PaymentMethodData::Voucher(voucher_data) => match voucher_data { payments::VoucherData::Boleto(_) | payments::VoucherData::Oxxo => { Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), @@ -1481,19 +1480,19 @@ fn create_stripe_payment_method( .into()), }, - payments::PaymentMethodData::Upi(_) - | payments::PaymentMethodData::MandatePayment - | payments::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( + domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), ) .into()), } } -impl TryFrom<(&payments::Card, Auth3ds)> for StripePaymentMethodData { +impl TryFrom<(&domain::Card, Auth3ds)> for StripePaymentMethodData { type Error = errors::ConnectorError; fn try_from( - (card, payment_method_auth_type): (&payments::Card, Auth3ds), + (card, payment_method_auth_type): (&domain::Card, Auth3ds), ) -> Result { Ok(Self::Card(StripeCardData { payment_method_data_type: StripePaymentMethodType::Card, @@ -1858,7 +1857,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for PaymentIntentRequest { }; payment_data = match item.request.payment_method_data { - payments::PaymentMethodData::Wallet(payments::WalletData::ApplePay(_)) => { + domain::PaymentMethodData::Wallet(payments::WalletData::ApplePay(_)) => { let payment_method_token = item .payment_method_token .to_owned() @@ -3188,7 +3187,7 @@ impl TryFrom<&types::PaymentsPreProcessingRouterData> for StripeCreditTransferSo let currency = item.request.get_currency()?; match &item.request.payment_method_data { - Some(payments::PaymentMethodData::BankTransfer(bank_transfer_data)) => { + Some(domain::PaymentMethodData::BankTransfer(bank_transfer_data)) => { match **bank_transfer_data { payments::BankTransferData::MultibancoBankTransfer { .. } => Ok( Self::MultibancoBankTansfer(MultibancoCreditTransferSourceRequest { @@ -3230,19 +3229,19 @@ impl TryFrom<&types::PaymentsPreProcessingRouterData> for StripeCreditTransferSo } } } - Some(payments::PaymentMethodData::Card(..)) - | Some(payments::PaymentMethodData::Wallet(..)) - | Some(payments::PaymentMethodData::BankDebit(..)) - | Some(payments::PaymentMethodData::BankRedirect(..)) - | Some(payments::PaymentMethodData::PayLater(..)) - | Some(payments::PaymentMethodData::Crypto(..)) - | Some(payments::PaymentMethodData::Reward) - | Some(payments::PaymentMethodData::MandatePayment) - | Some(payments::PaymentMethodData::Upi(..)) - | Some(payments::PaymentMethodData::GiftCard(..)) - | Some(payments::PaymentMethodData::CardRedirect(..)) - | Some(payments::PaymentMethodData::Voucher(..)) - | Some(payments::PaymentMethodData::CardToken(..)) + Some(domain::PaymentMethodData::Card(..)) + | Some(domain::PaymentMethodData::Wallet(..)) + | Some(domain::PaymentMethodData::BankDebit(..)) + | Some(domain::PaymentMethodData::BankRedirect(..)) + | Some(domain::PaymentMethodData::PayLater(..)) + | Some(domain::PaymentMethodData::Crypto(..)) + | Some(domain::PaymentMethodData::Reward) + | Some(domain::PaymentMethodData::MandatePayment) + | Some(domain::PaymentMethodData::Upi(..)) + | Some(domain::PaymentMethodData::GiftCard(..)) + | Some(domain::PaymentMethodData::CardRedirect(..)) + | Some(domain::PaymentMethodData::Voucher(..)) + | Some(domain::PaymentMethodData::CardToken(..)) | None => Err(errors::ConnectorError::NotImplemented( connector_util::get_unimplemented_payment_method_error_message("stripe"), ) @@ -3595,7 +3594,7 @@ pub struct EvidenceDetails { impl TryFrom<( - api::PaymentMethodData, + domain::PaymentMethodData, enums::AuthenticationType, StripePaymentMethodType, )> for StripePaymentMethodData @@ -3603,98 +3602,98 @@ impl type Error = error_stack::Report; fn try_from( (pm_data, auth_type, pm_type): ( - api::PaymentMethodData, + domain::PaymentMethodData, enums::AuthenticationType, StripePaymentMethodType, ), ) -> Result { match pm_data { - api::PaymentMethodData::Card(ref ccard) => { + domain::PaymentMethodData::Card(ref ccard) => { let payment_method_auth_type = match auth_type { enums::AuthenticationType::ThreeDs => Auth3ds::Any, enums::AuthenticationType::NoThreeDs => Auth3ds::Automatic, }; Ok(Self::try_from((ccard, payment_method_auth_type))?) } - api::PaymentMethodData::PayLater(_) => Ok(Self::PayLater(StripePayLaterData { + domain::PaymentMethodData::PayLater(_) => Ok(Self::PayLater(StripePayLaterData { payment_method_data_type: pm_type, })), - api::PaymentMethodData::BankRedirect(ref bank_redirect_data) => { + domain::PaymentMethodData::BankRedirect(ref bank_redirect_data) => { Ok(Self::try_from(bank_redirect_data)?) } - payments::PaymentMethodData::Wallet(ref wallet_data) => { + domain::PaymentMethodData::Wallet(ref wallet_data) => { Ok(Self::try_from((wallet_data, None))?) } - api::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::BankDebit(bank_debit_data) => { let (_pm_type, bank_data, _) = get_bank_debit_data(&bank_debit_data); Ok(Self::BankDebit(StripeBankDebitData { bank_specific_data: bank_data, })) } - api::PaymentMethodData::BankTransfer(bank_transfer_data) => { - match bank_transfer_data.deref() { - payments::BankTransferData::AchBankTransfer { billing_details } => { - Ok(Self::BankTransfer(StripeBankTransferData::AchBankTransfer( - Box::new(AchTransferData { - email: billing_details.email.to_owned(), - }), - ))) - } - payments::BankTransferData::MultibancoBankTransfer { billing_details } => Ok( - Self::BankTransfer(StripeBankTransferData::MultibancoBankTransfers( - Box::new(MultibancoTransferData { - email: billing_details.email.to_owned(), - }), - )), - ), - payments::BankTransferData::SepaBankTransfer { country, .. } => Ok( - Self::BankTransfer(StripeBankTransferData::SepaBankTransfer(Box::new( - SepaBankTransferData { - payment_method_data_type: StripePaymentMethodType::CustomerBalance, - bank_transfer_type: BankTransferType::EuBankTransfer, - balance_funding_type: BankTransferType::BankTransfers, - payment_method_type: StripePaymentMethodType::CustomerBalance, - country: country.to_owned(), - }, - ))), - ), - payments::BankTransferData::BacsBankTransfer { .. } => Ok(Self::BankTransfer( - StripeBankTransferData::BacsBankTransfers(Box::new(BacsBankTransferData { + domain::PaymentMethodData::BankTransfer(bank_transfer_data) => match bank_transfer_data + .deref() + { + payments::BankTransferData::AchBankTransfer { billing_details } => { + Ok(Self::BankTransfer(StripeBankTransferData::AchBankTransfer( + Box::new(AchTransferData { + email: billing_details.email.to_owned(), + }), + ))) + } + payments::BankTransferData::MultibancoBankTransfer { billing_details } => Ok( + Self::BankTransfer(StripeBankTransferData::MultibancoBankTransfers(Box::new( + MultibancoTransferData { + email: billing_details.email.to_owned(), + }, + ))), + ), + payments::BankTransferData::SepaBankTransfer { country, .. } => { + Ok(Self::BankTransfer( + StripeBankTransferData::SepaBankTransfer(Box::new(SepaBankTransferData { payment_method_data_type: StripePaymentMethodType::CustomerBalance, - bank_transfer_type: BankTransferType::GbBankTransfer, + bank_transfer_type: BankTransferType::EuBankTransfer, balance_funding_type: BankTransferType::BankTransfers, payment_method_type: StripePaymentMethodType::CustomerBalance, + country: country.to_owned(), })), - )), - payments::BankTransferData::Pix {} - | payments::BankTransferData::Pse {} - | payments::BankTransferData::PermataBankTransfer { .. } - | payments::BankTransferData::BcaBankTransfer { .. } - | payments::BankTransferData::BniVaBankTransfer { .. } - | payments::BankTransferData::BriVaBankTransfer { .. } - | payments::BankTransferData::CimbVaBankTransfer { .. } - | payments::BankTransferData::DanamonVaBankTransfer { .. } - | payments::BankTransferData::MandiriVaBankTransfer { .. } => { - Err(errors::ConnectorError::NotImplemented( - connector_util::get_unimplemented_payment_method_error_message( - "stripe", - ), - ) - .into()) - } + )) } + payments::BankTransferData::BacsBankTransfer { .. } => Ok(Self::BankTransfer( + StripeBankTransferData::BacsBankTransfers(Box::new(BacsBankTransferData { + payment_method_data_type: StripePaymentMethodType::CustomerBalance, + bank_transfer_type: BankTransferType::GbBankTransfer, + balance_funding_type: BankTransferType::BankTransfers, + payment_method_type: StripePaymentMethodType::CustomerBalance, + })), + )), + payments::BankTransferData::Pix {} + | payments::BankTransferData::Pse {} + | payments::BankTransferData::PermataBankTransfer { .. } + | payments::BankTransferData::BcaBankTransfer { .. } + | payments::BankTransferData::BniVaBankTransfer { .. } + | payments::BankTransferData::BriVaBankTransfer { .. } + | payments::BankTransferData::CimbVaBankTransfer { .. } + | payments::BankTransferData::DanamonVaBankTransfer { .. } + | payments::BankTransferData::MandiriVaBankTransfer { .. } => { + Err(errors::ConnectorError::NotImplemented( + connector_util::get_unimplemented_payment_method_error_message("stripe"), + ) + .into()) + } + }, + domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + connector_util::get_unimplemented_payment_method_error_message("stripe"), + ))? } - api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::Reward - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - connector_util::get_unimplemented_payment_method_error_message("stripe"), - ))?, } } } diff --git a/crates/router/src/connector/threedsecureio/transformers.rs b/crates/router/src/connector/threedsecureio/transformers.rs index 2d662e5e30..f119be9ccf 100644 --- a/crates/router/src/connector/threedsecureio/transformers.rs +++ b/crates/router/src/connector/threedsecureio/transformers.rs @@ -18,6 +18,7 @@ use crate::{ self, api::{self, MessageCategory}, authentication::ChallengeParams, + domain, }, utils::OptionExt, }; @@ -244,10 +245,10 @@ impl TryFrom<&types::ConnectorAuthType> for ThreedsecureioAuthType { } fn get_card_details( - payment_method_data: api_models::payments::PaymentMethodData, -) -> Result { + payment_method_data: domain::PaymentMethodData, +) -> Result { match payment_method_data { - api_models::payments::PaymentMethodData::Card(details) => Ok(details), + domain::PaymentMethodData::Card(details) => Ok(details), _ => Err(errors::ConnectorError::NotSupported { message: SELECTED_PAYMENT_METHOD.to_string(), connector: "threedsecureio", diff --git a/crates/router/src/connector/trustpay/transformers.rs b/crates/router/src/connector/trustpay/transformers.rs index d898bd2489..e7e9a759d5 100644 --- a/crates/router/src/connector/trustpay/transformers.rs +++ b/crates/router/src/connector/trustpay/transformers.rs @@ -18,7 +18,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums, BrowserInformation}, + types::{self, domain, storage::enums, BrowserInformation}, }; type Error = error_stack::Report; @@ -281,7 +281,7 @@ fn get_card_request_data( browser_info: &BrowserInformation, params: TrustpayMandatoryParams, amount: String, - ccard: &api_models::payments::Card, + ccard: &domain::payments::Card, return_url: String, ) -> Result { let email = item.request.get_email()?; @@ -418,7 +418,7 @@ impl TryFrom<&TrustpayRouterData<&types::PaymentsAuthorizeRouterData>> for Trust let auth = TrustpayAuthType::try_from(&item.router_data.connector_auth_type) .change_context(errors::ConnectorError::FailedToObtainAuthType)?; match item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(ref ccard) => Ok(get_card_request_data( + domain::PaymentMethodData::Card(ref ccard) => Ok(get_card_request_data( item.router_data, &default_browser_info, params, @@ -426,7 +426,7 @@ impl TryFrom<&TrustpayRouterData<&types::PaymentsAuthorizeRouterData>> for Trust ccard, item.router_data.request.get_return_url()?, )?), - api::PaymentMethodData::BankRedirect(ref bank_redirection_data) => { + domain::PaymentMethodData::BankRedirect(ref bank_redirection_data) => { get_bank_redirection_request_data( item.router_data, bank_redirection_data, @@ -435,21 +435,23 @@ impl TryFrom<&TrustpayRouterData<&types::PaymentsAuthorizeRouterData>> for Trust auth, ) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("trustpay"), - ) - .into()), + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("trustpay"), + ) + .into()) + } } } } diff --git a/crates/router/src/connector/tsys/transformers.rs b/crates/router/src/connector/tsys/transformers.rs index a01576bbb2..6ffe1f1ed7 100644 --- a/crates/router/src/connector/tsys/transformers.rs +++ b/crates/router/src/connector/tsys/transformers.rs @@ -6,7 +6,7 @@ use crate::{ connector::utils::{self, CardData, PaymentsAuthorizeRequestData, RefundsRequestData}, core::errors, types::{ - self, api, + self, api, domain, storage::{self, enums}, }, }; @@ -41,7 +41,7 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for TsysPaymentsRequest { type Error = error_stack::Report; fn try_from(item: &types::PaymentsAuthorizeRouterData) -> Result { match item.request.payment_method_data.clone() { - api::PaymentMethodData::Card(ccard) => { + domain::PaymentMethodData::Card(ccard) => { let connector_auth: TsysAuthType = TsysAuthType::try_from(&item.connector_auth_type)?; let auth_data: TsysPaymentAuthSaleRequest = TsysPaymentAuthSaleRequest { @@ -66,21 +66,23 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for TsysPaymentsRequest { Ok(Self::Auth(auth_data)) } } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankRedirect(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("tsys"), - ))?, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("tsys"), + ))? + } } } } diff --git a/crates/router/src/connector/utils.rs b/crates/router/src/connector/utils.rs index 804ad3ef3d..37f06ad9ce 100644 --- a/crates/router/src/connector/utils.rs +++ b/crates/router/src/connector/utils.rs @@ -29,8 +29,8 @@ use crate::{ }, pii::PeekInterface, types::{ - self, api, transformers::ForeignTryFrom, ApplePayPredecryptData, BrowserInformation, - PaymentsCancelData, ResponseId, + self, api, domain, transformers::ForeignTryFrom, ApplePayPredecryptData, + BrowserInformation, PaymentsCancelData, ResponseId, }, utils::{OptionExt, ValueExt}, }; @@ -477,7 +477,7 @@ pub trait PaymentsAuthorizeRequestData { fn get_email(&self) -> Result; fn get_browser_info(&self) -> Result; fn get_order_details(&self) -> Result, Error>; - fn get_card(&self) -> Result; + fn get_card(&self) -> Result; fn get_return_url(&self) -> Result; fn connector_mandate_id(&self) -> Option; fn is_mandate_payment(&self) -> bool; @@ -530,9 +530,9 @@ impl PaymentsAuthorizeRequestData for types::PaymentsAuthorizeData { .ok_or_else(missing_field_err("order_details")) } - fn get_card(&self) -> Result { + fn get_card(&self) -> Result { match self.payment_method_data.clone() { - api::PaymentMethodData::Card(card) => Ok(card), + domain::PaymentMethodData::Card(card) => Ok(card), _ => Err(missing_field_err("card")()), } } @@ -577,10 +577,13 @@ impl PaymentsAuthorizeRequestData for types::PaymentsAuthorizeData { .ok_or_else(missing_field_err("return_url")) } fn is_wallet(&self) -> bool { - matches!(self.payment_method_data, api::PaymentMethodData::Wallet(_)) + matches!( + self.payment_method_data, + domain::PaymentMethodData::Wallet(_) + ) } fn is_card(&self) -> bool { - matches!(self.payment_method_data, api::PaymentMethodData::Card(_)) + matches!(self.payment_method_data, domain::PaymentMethodData::Card(_)) } fn get_payment_method_type(&self) -> Result { @@ -903,7 +906,7 @@ pub trait CardData { fn get_expiry_year_as_i32(&self) -> Result, Error>; } -impl CardData for api::Card { +impl CardData for domain::Card { fn get_card_expiry_year_2_digit(&self) -> Result, errors::ConnectorError> { let binding = self.card_exp_year.clone(); let year = binding.peek(); diff --git a/crates/router/src/connector/volt/transformers.rs b/crates/router/src/connector/volt/transformers.rs index 317f40216f..47c29767d8 100644 --- a/crates/router/src/connector/volt/transformers.rs +++ b/crates/router/src/connector/volt/transformers.rs @@ -8,7 +8,7 @@ use crate::{ consts, core::errors, services, - types::{self, api, storage::enums as storage_enums}, + types::{self, api, domain, storage::enums as storage_enums}, }; const PASSWORD: &str = "password"; @@ -87,7 +87,7 @@ impl TryFrom<&VoltRouterData<&types::PaymentsAuthorizeRouterData>> for VoltPayme item: &VoltRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match item.router_data.request.payment_method_data.clone() { - api::PaymentMethodData::BankRedirect(ref bank_redirect) => match bank_redirect { + domain::PaymentMethodData::BankRedirect(ref bank_redirect) => match bank_redirect { api_models::payments::BankRedirectData::OpenBankingUk { .. } => { let amount = item.amount; let currency_code = item.router_data.request.currency; @@ -140,19 +140,19 @@ impl TryFrom<&VoltRouterData<&types::PaymentsAuthorizeRouterData>> for VoltPayme .into()) } }, - api_models::payments::PaymentMethodData::Card(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::Wallet(_) - | api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Card(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Volt"), ) diff --git a/crates/router/src/connector/worldline/transformers.rs b/crates/router/src/connector/worldline/transformers.rs index 85d7afd8e4..9a8297dd32 100644 --- a/crates/router/src/connector/worldline/transformers.rs +++ b/crates/router/src/connector/worldline/transformers.rs @@ -11,6 +11,7 @@ use crate::{ types::{ self, api::{self, enums as api_enums}, + domain, storage::enums, transformers::ForeignFrom, PaymentsAuthorizeData, PaymentsResponseData, @@ -236,31 +237,33 @@ impl >, ) -> Result { let payment_data = match &item.router_data.request.payment_method_data { - api::PaymentMethodData::Card(card) => { + domain::PaymentMethodData::Card(card) => { WorldlinePaymentMethod::CardPaymentMethodSpecificInput(Box::new(make_card_request( &item.router_data.request, card, )?)) } - api::PaymentMethodData::BankRedirect(bank_redirect) => { + domain::PaymentMethodData::BankRedirect(bank_redirect) => { WorldlinePaymentMethod::RedirectPaymentMethodSpecificInput(Box::new( make_bank_redirect_request(&item.router_data.request, bank_redirect)?, )) } - api::PaymentMethodData::CardRedirect(_) - | api::PaymentMethodData::Wallet(_) - | api::PaymentMethodData::PayLater(_) - | api::PaymentMethodData::BankDebit(_) - | api::PaymentMethodData::BankTransfer(_) - | api::PaymentMethodData::Crypto(_) - | api::PaymentMethodData::MandatePayment - | api::PaymentMethodData::Reward - | api::PaymentMethodData::Upi(_) - | api::PaymentMethodData::Voucher(_) - | api::PaymentMethodData::GiftCard(_) - | api::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("worldline"), - ))?, + domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::Wallet(_) + | domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => { + Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("worldline"), + ))? + } }; let billing_address = item.router_data.get_billing()?; @@ -339,7 +342,7 @@ impl TryFrom<&api_models::enums::BankNames> for WorldlineBic { fn make_card_request( req: &PaymentsAuthorizeData, - ccard: &payments::Card, + ccard: &domain::Card, ) -> Result> { let expiry_year = ccard.card_exp_year.peek(); let secret_value = format!( diff --git a/crates/router/src/connector/worldpay/transformers.rs b/crates/router/src/connector/worldpay/transformers.rs index dd92984eb9..1cbdb71f8b 100644 --- a/crates/router/src/connector/worldpay/transformers.rs +++ b/crates/router/src/connector/worldpay/transformers.rs @@ -9,7 +9,7 @@ use crate::{ connector::utils, consts, core::errors, - types::{self, api, PaymentsAuthorizeData, PaymentsResponseData}, + types::{self, domain, PaymentsAuthorizeData, PaymentsResponseData}, }; #[derive(Debug, Serialize)] @@ -41,10 +41,10 @@ impl } } fn fetch_payment_instrument( - payment_method: api::PaymentMethodData, + payment_method: domain::PaymentMethodData, ) -> CustomResult { match payment_method { - api::PaymentMethodData::Card(card) => Ok(PaymentInstrument::Card(CardPayment { + domain::PaymentMethodData::Card(card) => Ok(PaymentInstrument::Card(CardPayment { card_expiry_date: CardExpiryDate { month: utils::CardData::get_expiry_month_as_i8(&card)?, year: utils::CardData::get_expiry_year_as_i32(&card)?, @@ -52,7 +52,7 @@ fn fetch_payment_instrument( card_number: card.card_number, ..CardPayment::default() })), - api::PaymentMethodData::Wallet(wallet) => match wallet { + domain::PaymentMethodData::Wallet(wallet) => match wallet { api_models::payments::WalletData::GooglePay(data) => { Ok(PaymentInstrument::Googlepay(WalletPayment { payment_type: PaymentType::Googlepay, @@ -97,23 +97,21 @@ fn fetch_payment_instrument( .into()) } }, - api_models::payments::PaymentMethodData::PayLater(_) - | api_models::payments::PaymentMethodData::BankRedirect(_) - | api_models::payments::PaymentMethodData::BankDebit(_) - | api_models::payments::PaymentMethodData::BankTransfer(_) - | api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::Voucher(_) - | api_models::payments::PaymentMethodData::CardRedirect(_) - | api_models::payments::PaymentMethodData::GiftCard(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { - Err(errors::ConnectorError::NotImplemented( - utils::get_unimplemented_payment_method_error_message("worldpay"), - ) - .into()) - } + domain::PaymentMethodData::PayLater(_) + | domain::PaymentMethodData::BankRedirect(_) + | domain::PaymentMethodData::BankDebit(_) + | domain::PaymentMethodData::BankTransfer(_) + | domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::Voucher(_) + | domain::PaymentMethodData::CardRedirect(_) + | domain::PaymentMethodData::GiftCard(_) + | domain::PaymentMethodData::CardToken(_) => Err(errors::ConnectorError::NotImplemented( + utils::get_unimplemented_payment_method_error_message("worldpay"), + ) + .into()), } } diff --git a/crates/router/src/connector/zen.rs b/crates/router/src/connector/zen.rs index 7c28dfcc43..540c3320c2 100644 --- a/crates/router/src/connector/zen.rs +++ b/crates/router/src/connector/zen.rs @@ -197,7 +197,7 @@ impl ConnectorIntegration CustomResult)>, errors::ConnectorError> { let mut headers = self.build_headers(req, connectors)?; let api_headers = match req.request.payment_method_data { - api_models::payments::PaymentMethodData::Wallet(_) => None, + domain::payments::PaymentMethodData::Wallet(_) => None, _ => Some(Self::get_default_header()), }; if let Some(api_header) = api_headers { @@ -216,7 +216,7 @@ impl ConnectorIntegration CustomResult { let endpoint = match &req.request.payment_method_data { - api_models::payments::PaymentMethodData::Wallet(_) => { + domain::payments::PaymentMethodData::Wallet(_) => { let base_url = connectors .zen .secondary_base_url diff --git a/crates/router/src/connector/zen/transformers.rs b/crates/router/src/connector/zen/transformers.rs index 3e52742357..ec44150ec9 100644 --- a/crates/router/src/connector/zen/transformers.rs +++ b/crates/router/src/connector/zen/transformers.rs @@ -1,4 +1,3 @@ -use api_models::payments::Card; use cards::CardNumber; use common_utils::{ext_traits::ValueExt, pii}; use error_stack::ResultExt; @@ -14,7 +13,7 @@ use crate::{ consts, core::errors::{self, CustomResult}, services::{self, Method}, - types::{self, api, storage::enums, transformers::ForeignTryFrom}, + types::{self, api, domain, storage::enums, transformers::ForeignTryFrom}, utils::OptionExt, }; @@ -204,10 +203,18 @@ pub struct WalletSessionData { pub pay_wall_secret: Option>, } -impl TryFrom<(&ZenRouterData<&types::PaymentsAuthorizeRouterData>, &Card)> for ZenPaymentsRequest { +impl + TryFrom<( + &ZenRouterData<&types::PaymentsAuthorizeRouterData>, + &domain::Card, + )> for ZenPaymentsRequest +{ type Error = error_stack::Report; fn try_from( - value: (&ZenRouterData<&types::PaymentsAuthorizeRouterData>, &Card), + value: ( + &ZenRouterData<&types::PaymentsAuthorizeRouterData>, + &domain::Card, + ), ) -> Result { let (item, ccard) = value; let browser_info = item.router_data.request.get_browser_info()?; @@ -685,36 +692,32 @@ impl TryFrom<&ZenRouterData<&types::PaymentsAuthorizeRouterData>> for ZenPayment item: &ZenRouterData<&types::PaymentsAuthorizeRouterData>, ) -> Result { match &item.router_data.request.payment_method_data { - api_models::payments::PaymentMethodData::Card(card) => Self::try_from((item, card)), - api_models::payments::PaymentMethodData::Wallet(wallet_data) => { - Self::try_from((item, wallet_data)) - } - api_models::payments::PaymentMethodData::Voucher(voucher_data) => { + domain::PaymentMethodData::Card(card) => Self::try_from((item, card)), + domain::PaymentMethodData::Wallet(wallet_data) => Self::try_from((item, wallet_data)), + domain::PaymentMethodData::Voucher(voucher_data) => { Self::try_from((item, voucher_data)) } - api_models::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { + domain::PaymentMethodData::BankTransfer(bank_transfer_data) => { Self::try_from((item, bank_transfer_data)) } - api_models::payments::PaymentMethodData::BankRedirect(bank_redirect_data) => { + domain::PaymentMethodData::BankRedirect(bank_redirect_data) => { Self::try_from(bank_redirect_data) } - api_models::payments::PaymentMethodData::PayLater(paylater_data) => { - Self::try_from(paylater_data) - } - api_models::payments::PaymentMethodData::BankDebit(bank_debit_data) => { + domain::PaymentMethodData::PayLater(paylater_data) => Self::try_from(paylater_data), + domain::PaymentMethodData::BankDebit(bank_debit_data) => { Self::try_from(bank_debit_data) } - api_models::payments::PaymentMethodData::CardRedirect(car_redirect_data) => { + domain::PaymentMethodData::CardRedirect(car_redirect_data) => { Self::try_from(car_redirect_data) } - api_models::payments::PaymentMethodData::GiftCard(gift_card_data) => { + domain::PaymentMethodData::GiftCard(gift_card_data) => { Self::try_from(gift_card_data.as_ref()) } - api_models::payments::PaymentMethodData::Crypto(_) - | api_models::payments::PaymentMethodData::MandatePayment - | api_models::payments::PaymentMethodData::Reward - | api_models::payments::PaymentMethodData::Upi(_) - | api_models::payments::PaymentMethodData::CardToken(_) => { + domain::PaymentMethodData::Crypto(_) + | domain::PaymentMethodData::MandatePayment + | domain::PaymentMethodData::Reward + | domain::PaymentMethodData::Upi(_) + | domain::PaymentMethodData::CardToken(_) => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Zen"), ))? @@ -791,14 +794,14 @@ impl TryFrom<&api_models::payments::BankDebitData> for ZenPaymentsRequest { } } -impl TryFrom<&api_models::payments::CardRedirectData> for ZenPaymentsRequest { +impl TryFrom<&domain::payments::CardRedirectData> for ZenPaymentsRequest { type Error = error_stack::Report; - fn try_from(value: &api_models::payments::CardRedirectData) -> Result { + fn try_from(value: &domain::payments::CardRedirectData) -> Result { match value { - api_models::payments::CardRedirectData::Knet {} - | api_models::payments::CardRedirectData::Benefit {} - | api_models::payments::CardRedirectData::MomoAtm {} - | api_models::payments::CardRedirectData::CardRedirect {} => { + domain::payments::CardRedirectData::Knet {} + | domain::payments::CardRedirectData::Benefit {} + | domain::payments::CardRedirectData::MomoAtm {} + | domain::payments::CardRedirectData::CardRedirect {} => { Err(errors::ConnectorError::NotImplemented( utils::get_unimplemented_payment_method_error_message("Zen"), ) diff --git a/crates/router/src/core/authentication/transformers.rs b/crates/router/src/core/authentication/transformers.rs index 6ade1b37e9..3c19c0630e 100644 --- a/crates/router/src/core/authentication/transformers.rs +++ b/crates/router/src/core/authentication/transformers.rs @@ -56,7 +56,7 @@ pub fn construct_authentication_router_data( }) .attach_printable("Error while parsing authentication_details from merchant_account")?; let router_request = types::authentication::ConnectorAuthenticationRequestData { - payment_method_data, + payment_method_data: From::from(payment_method_data), billing_address, shipping_address, browser_details, diff --git a/crates/router/src/core/mandate.rs b/crates/router/src/core/mandate.rs index 0ad13f0703..e3eb9b0c97 100644 --- a/crates/router/src/core/mandate.rs +++ b/crates/router/src/core/mandate.rs @@ -236,12 +236,12 @@ pub async fn get_customer_mandates( fn get_insensitive_payment_method_data_if_exists( router_data: &types::RouterData, -) -> Option +) -> Option where FData: MandateBehaviour, { match &router_data.request.get_payment_method_data() { - api_models::payments::PaymentMethodData::Card(_) => None, + domain::PaymentMethodData::Card(_) => None, _ => Some(router_data.request.get_payment_method_data()), } } @@ -495,7 +495,7 @@ pub trait MandateBehaviour { fn get_setup_future_usage(&self) -> Option; fn get_mandate_id(&self) -> Option<&api_models::payments::MandateIds>; fn set_mandate_id(&mut self, new_mandate_id: Option); - fn get_payment_method_data(&self) -> api_models::payments::PaymentMethodData; + fn get_payment_method_data(&self) -> domain::payments::PaymentMethodData; fn get_setup_mandate_details(&self) -> Option<&data_models::mandates::MandateData>; fn get_customer_acceptance(&self) -> Option; } diff --git a/crates/router/src/core/payments.rs b/crates/router/src/core/payments.rs index b996677f7e..96f5a2833d 100644 --- a/crates/router/src/core/payments.rs +++ b/crates/router/src/core/payments.rs @@ -2170,21 +2170,22 @@ pub mod payment_address { billing: Option, payment_method_billing: Option, ) -> Self { + // billing -> .billing, this is the billing details passed in the root of payments request + // payment_method_billing -> .payment_method_data.billing + // Merge the billing details field from both `payment.billing` and `payment.payment_method_data.billing` // The unified payment_method_billing will be used as billing address and passed to the connector module // This unification is required in order to provide backwards compatibility // so that if `payment.billing` is passed it should be sent to the connector module - let unified_payment_method_billing = - match (payment_method_billing.clone(), billing.clone()) { - (Some(payment_method_billing), Some(order_billing)) => Some(api::Address { - address: payment_method_billing.address.or(order_billing.address), - phone: payment_method_billing.phone.or(order_billing.phone), - email: payment_method_billing.email.or(order_billing.email), - }), - (Some(payment_method_billing), None) => Some(payment_method_billing), - (None, Some(order_billing)) => Some(order_billing), - (None, None) => None, - }; + // Unify the billing details with `payment_method_data.billing` + let unified_payment_method_billing = payment_method_billing + .as_ref() + .map(|payment_method_billing| { + payment_method_billing + .clone() + .unify_address(billing.as_ref()) + }) + .or(billing.clone()); Self { shipping, @@ -2202,6 +2203,25 @@ pub mod payment_address { self.unified_payment_method_billing.as_ref() } + pub fn unify_with_payment_method_data_billing( + self, + payment_method_data_billing: Option, + ) -> Self { + // Unify the billing details with `payment_method_data.billing_details` + let unified_payment_method_billing = payment_method_data_billing + .map(|payment_method_data_billing| { + payment_method_data_billing.unify_address(self.get_payment_method_billing()) + }) + .or(self.get_payment_method_billing().cloned()); + + Self { + shipping: self.shipping, + billing: self.billing, + unified_payment_method_billing, + payment_method_billing: self.payment_method_billing, + } + } + pub fn get_request_payment_method_billing(&self) -> Option<&api::Address> { self.payment_method_billing.as_ref() } diff --git a/crates/router/src/core/payments/flows/authorize_flow.rs b/crates/router/src/core/payments/flows/authorize_flow.rs index 7757313d86..bc43839fdc 100644 --- a/crates/router/src/core/payments/flows/authorize_flow.rs +++ b/crates/router/src/core/payments/flows/authorize_flow.rs @@ -294,7 +294,7 @@ impl mandate::MandateBehaviour for types::PaymentsAuthorizeData { fn get_mandate_id(&self) -> Option<&api_models::payments::MandateIds> { self.mandate_id.as_ref() } - fn get_payment_method_data(&self) -> api_models::payments::PaymentMethodData { + fn get_payment_method_data(&self) -> domain::payments::PaymentMethodData { self.payment_method_data.clone() } fn get_setup_future_usage(&self) -> Option { diff --git a/crates/router/src/core/payments/flows/setup_mandate_flow.rs b/crates/router/src/core/payments/flows/setup_mandate_flow.rs index 0d663df298..27204450a0 100644 --- a/crates/router/src/core/payments/flows/setup_mandate_flow.rs +++ b/crates/router/src/core/payments/flows/setup_mandate_flow.rs @@ -429,7 +429,7 @@ impl mandate::MandateBehaviour for types::SetupMandateRequestData { self.mandate_id = new_mandate_id; } - fn get_payment_method_data(&self) -> api_models::payments::PaymentMethodData { + fn get_payment_method_data(&self) -> domain::payments::PaymentMethodData { self.payment_method_data.clone() } diff --git a/crates/router/src/core/payments/helpers.rs b/crates/router/src/core/payments/helpers.rs index 0f80b6a52e..d96469b640 100644 --- a/crates/router/src/core/payments/helpers.rs +++ b/crates/router/src/core/payments/helpers.rs @@ -1167,7 +1167,7 @@ where #[instrument(skip_all)] pub(crate) async fn get_payment_method_create_request( - payment_method_data: Option<&api::PaymentMethodData>, + payment_method_data: Option<&domain::PaymentMethodData>, payment_method: Option, payment_method_type: Option, customer: &domain::Customer, @@ -1175,7 +1175,7 @@ pub(crate) async fn get_payment_method_create_request( match payment_method_data { Some(pm_data) => match payment_method { Some(payment_method) => match pm_data { - api::PaymentMethodData::Card(card) => { + domain::PaymentMethodData::Card(card) => { let card_detail = api::CardDetail { card_number: card.card_number.clone(), card_exp_month: card.card_exp_month.clone(), @@ -2507,7 +2507,7 @@ pub fn generate_mandate( payment_method_id: String, connector_mandate_id: Option, network_txn_id: Option, - payment_method_data_option: Option, + payment_method_data_option: Option, mandate_reference: Option, merchant_connector_id: Option, ) -> CustomResult, errors::ApiErrorResponse> { diff --git a/crates/router/src/core/payments/operations/payment_create.rs b/crates/router/src/core/payments/operations/payment_create.rs index 6dce6db9d9..f66c28c555 100644 --- a/crates/router/src/core/payments/operations/payment_create.rs +++ b/crates/router/src/core/payments/operations/payment_create.rs @@ -388,6 +388,7 @@ impl }); let amount = payment_attempt.get_total_amount().into(); + let payment_data = PaymentData { flow: PhantomData, payment_intent, diff --git a/crates/router/src/core/payments/transformers.rs b/crates/router/src/core/payments/transformers.rs index 9aa552b86d..3e06bb0a34 100644 --- a/crates/router/src/core/payments/transformers.rs +++ b/crates/router/src/core/payments/transformers.rs @@ -1,6 +1,6 @@ use std::{fmt::Debug, marker::PhantomData, str::FromStr}; -use api_models::payments::{FrmMessage, RequestSurchargeDetails}; +use api_models::payments::{FrmMessage, GetAddressFromPaymentMethodData, RequestSurchargeDetails}; #[cfg(feature = "payouts")] use api_models::payouts::PayoutAttemptResponse; use common_enums::RequestIncrementalAuthorization; @@ -124,6 +124,11 @@ where Some(merchant_connector_account), ); + let payment_method_data_billing = payment_data + .payment_method_data + .as_ref() + .and_then(|payment_method_data| payment_method_data.get_billing_address()); + router_data = types::RouterData { flow: PhantomData, merchant_id: merchant_account.merchant_id.clone(), @@ -137,7 +142,9 @@ where description: payment_data.payment_intent.description.clone(), return_url: payment_data.payment_intent.return_url.clone(), payment_method_id: payment_data.payment_attempt.payment_method_id.clone(), - address: payment_data.address.clone(), + address: payment_data + .address + .unify_with_payment_method_data_billing(payment_method_data_billing), auth_type: payment_data .payment_attempt .authentication_type @@ -1220,7 +1227,9 @@ impl TryFrom> for types::PaymentsAuthoriz }); Ok(Self { - payment_method_data: payment_method_data.get_required_value("payment_method_data")?, + payment_method_data: From::from( + payment_method_data.get_required_value("payment_method_data")?, + ), setup_future_usage: payment_data.payment_intent.setup_future_usage, mandate_id: payment_data.mandate_id.clone(), off_session: payment_data.mandate_id.as_ref().map(|_| true), @@ -1552,9 +1561,11 @@ impl TryFrom> for types::SetupMandateRequ currency: payment_data.currency, confirm: true, amount: Some(payment_data.amount.into()), - payment_method_data: payment_data - .payment_method_data - .get_required_value("payment_method_data")?, + payment_method_data: From::from( + payment_data + .payment_method_data + .get_required_value("payment_method_data")?, + ), statement_descriptor_suffix: payment_data.payment_intent.statement_descriptor_suffix, setup_future_usage: payment_data.payment_intent.setup_future_usage, off_session: payment_data.mandate_id.as_ref().map(|_| true), @@ -1665,7 +1676,7 @@ impl TryFrom> for types::CompleteAuthoriz currency: payment_data.currency, browser_info, email: payment_data.email, - payment_method_data: payment_data.payment_method_data, + payment_method_data: payment_data.payment_method_data.map(From::from), connector_transaction_id: payment_data.payment_attempt.connector_transaction_id, redirect_response, connector_meta: payment_data.payment_attempt.connector_metadata, @@ -1735,7 +1746,7 @@ impl TryFrom> for types::PaymentsPreProce .unwrap_or(payment_data.amount.into()); Ok(Self { - payment_method_data, + payment_method_data: payment_method_data.map(From::from), email: payment_data.email, currency: Some(payment_data.currency), amount: Some(amount), diff --git a/crates/router/src/types.rs b/crates/router/src/types.rs index 4a2a676672..1bc8319235 100644 --- a/crates/router/src/types.rs +++ b/crates/router/src/types.rs @@ -29,18 +29,17 @@ use error_stack::ResultExt; use masking::Secret; use serde::Serialize; -use self::{api::payments, storage::enums as storage_enums}; +use self::storage::enums as storage_enums; pub use crate::core::payments::{payment_address::PaymentAddress, CustomerDetails}; #[cfg(feature = "payouts")] use crate::core::utils::IRRELEVANT_CONNECTOR_REQUEST_REFERENCE_ID_IN_DISPUTE_FLOW; use crate::{ core::{ - errors::{self, RouterResult}, + errors::{self}, payments::{types, PaymentData, RecurringMandatePaymentData}, }, services, types::{transformers::ForeignFrom, types::AuthenticationData}, - utils::OptionExt, }; pub type PaymentsAuthorizeRouterData = RouterData; @@ -412,7 +411,7 @@ pub struct PayoutsFulfillResponseData { #[derive(Debug, Clone)] pub struct PaymentsAuthorizeData { - pub payment_method_data: payments::PaymentMethodData, + pub payment_method_data: domain::payments::PaymentMethodData, /// total amount (original_amount + surcharge_amount + tax_on_surcharge_amount) /// If connector supports separate field for surcharge amount, consider using below functions defined on `PaymentsAuthorizeData` to fetch original amount and surcharge amount separately /// ``` @@ -497,12 +496,12 @@ pub struct ConnectorCustomerData { pub phone: Option>, pub name: Option>, pub preprocessing_id: Option, - pub payment_method_data: payments::PaymentMethodData, + pub payment_method_data: domain::PaymentMethodData, } #[derive(Debug, Clone)] pub struct PaymentMethodTokenizationData { - pub payment_method_data: payments::PaymentMethodData, + pub payment_method_data: domain::payments::PaymentMethodData, pub browser_info: Option, pub currency: storage_enums::Currency, pub amount: Option, @@ -510,7 +509,7 @@ pub struct PaymentMethodTokenizationData { #[derive(Debug, Clone)] pub struct PaymentsPreProcessingData { - pub payment_method_data: Option, + pub payment_method_data: Option, pub amount: Option, pub email: Option, pub currency: Option, @@ -529,7 +528,7 @@ pub struct PaymentsPreProcessingData { #[derive(Debug, Clone)] pub struct CompleteAuthorizeData { - pub payment_method_data: Option, + pub payment_method_data: Option, pub amount: i64, pub email: Option, pub currency: storage_enums::Currency, @@ -610,7 +609,7 @@ pub struct PaymentsSessionData { #[derive(Debug, Clone)] pub struct SetupMandateRequestData { pub currency: storage_enums::Currency, - pub payment_method_data: payments::PaymentMethodData, + pub payment_method_data: domain::PaymentMethodData, pub amount: Option, pub confirm: bool, pub statement_descriptor_suffix: Option, @@ -1393,32 +1392,20 @@ impl From<&RouterData> } pub trait Tokenizable { - fn get_pm_data(&self) -> RouterResult; fn set_session_token(&mut self, token: Option); } impl Tokenizable for SetupMandateRequestData { - fn get_pm_data(&self) -> RouterResult { - Ok(self.payment_method_data.clone()) - } fn set_session_token(&mut self, _token: Option) {} } impl Tokenizable for PaymentsAuthorizeData { - fn get_pm_data(&self) -> RouterResult { - Ok(self.payment_method_data.clone()) - } fn set_session_token(&mut self, token: Option) { self.session_token = token; } } impl Tokenizable for CompleteAuthorizeData { - fn get_pm_data(&self) -> RouterResult { - self.payment_method_data - .clone() - .get_required_value("payment_method_data") - } fn set_session_token(&mut self, _token: Option) {} } diff --git a/crates/router/src/types/api/verify_connector.rs b/crates/router/src/types/api/verify_connector.rs index 85bb9bf72a..55dc4a2bf0 100644 --- a/crates/router/src/types/api/verify_connector.rs +++ b/crates/router/src/types/api/verify_connector.rs @@ -8,7 +8,7 @@ use crate::{ core::errors, services, services::ConnectorIntegration, - types::{self, api, storage::enums as storage_enums}, + types::{self, api, domain, storage::enums as storage_enums}, AppState, }; @@ -16,13 +16,13 @@ use crate::{ pub struct VerifyConnectorData { pub connector: &'static (dyn types::api::Connector + Sync), pub connector_auth: types::ConnectorAuthType, - pub card_details: api::Card, + pub card_details: domain::Card, } impl VerifyConnectorData { fn get_payment_authorize_data(&self) -> types::PaymentsAuthorizeData { types::PaymentsAuthorizeData { - payment_method_data: api::PaymentMethodData::Card(self.card_details.clone()), + payment_method_data: domain::PaymentMethodData::Card(self.card_details.clone()), email: None, customer_name: None, amount: 1000, diff --git a/crates/router/src/types/authentication.rs b/crates/router/src/types/authentication.rs index 4cd1f3faeb..1de7d110a6 100644 --- a/crates/router/src/types/authentication.rs +++ b/crates/router/src/types/authentication.rs @@ -1,11 +1,10 @@ -use api_models::payments; use cards::CardNumber; use common_utils::pii::Email; use serde::{Deserialize, Serialize}; use super::{ api::{self, authentication}, - BrowserInformation, RouterData, + domain, BrowserInformation, RouterData, }; use crate::services; @@ -101,7 +100,7 @@ pub struct PreAuthNRequestData { #[derive(Clone, Debug)] pub struct ConnectorAuthenticationRequestData { - pub payment_method_data: payments::PaymentMethodData, + pub payment_method_data: domain::PaymentMethodData, pub billing_address: api_models::payments::Address, pub shipping_address: Option, pub browser_details: Option, diff --git a/crates/router/src/types/domain.rs b/crates/router/src/types/domain.rs index 3b6633defc..e5f6b8c966 100644 --- a/crates/router/src/types/domain.rs +++ b/crates/router/src/types/domain.rs @@ -5,6 +5,7 @@ mod event; mod merchant_account; mod merchant_connector_account; mod merchant_key_store; +pub mod payments; pub mod types; #[cfg(feature = "olap")] pub mod user; @@ -15,5 +16,6 @@ pub use event::*; pub use merchant_account::*; pub use merchant_connector_account::*; pub use merchant_key_store::*; +pub use payments::*; #[cfg(feature = "olap")] pub use user::*; diff --git a/crates/router/src/types/domain/payments.rs b/crates/router/src/types/domain/payments.rs new file mode 100644 index 0000000000..633193677a --- /dev/null +++ b/crates/router/src/types/domain/payments.rs @@ -0,0 +1,405 @@ +use common_utils::pii::Email; +use masking::Secret; +use serde::{Deserialize, Serialize}; + +// We need to derive Serialize and Deserialize because some parts of payment method data are being +// stored in the database as serde_json::Value +#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)] +pub enum PaymentMethodData { + Card(Card), + CardRedirect(CardRedirectData), + Wallet(api_models::payments::WalletData), + PayLater(api_models::payments::PayLaterData), + BankRedirect(api_models::payments::BankRedirectData), + BankDebit(api_models::payments::BankDebitData), + BankTransfer(Box), + Crypto(api_models::payments::CryptoData), + MandatePayment, + Reward, + Upi(api_models::payments::UpiData), + Voucher(api_models::payments::VoucherData), + GiftCard(Box), + CardToken(api_models::payments::CardToken), +} + +impl PaymentMethodData { + pub fn get_payment_method(&self) -> Option { + match self { + Self::Card(_) => Some(common_enums::PaymentMethod::Card), + Self::CardRedirect(_) => Some(common_enums::PaymentMethod::CardRedirect), + Self::Wallet(_) => Some(common_enums::PaymentMethod::Wallet), + Self::PayLater(_) => Some(common_enums::PaymentMethod::PayLater), + Self::BankRedirect(_) => Some(common_enums::PaymentMethod::BankRedirect), + Self::BankDebit(_) => Some(common_enums::PaymentMethod::BankDebit), + Self::BankTransfer(_) => Some(common_enums::PaymentMethod::BankTransfer), + Self::Crypto(_) => Some(common_enums::PaymentMethod::Crypto), + Self::Reward => Some(common_enums::PaymentMethod::Reward), + Self::Upi(_) => Some(common_enums::PaymentMethod::Upi), + Self::Voucher(_) => Some(common_enums::PaymentMethod::Voucher), + Self::GiftCard(_) => Some(common_enums::PaymentMethod::GiftCard), + Self::CardToken(_) | Self::MandatePayment => None, + } + } +} + +#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize, Default)] +pub struct Card { + pub card_number: cards::CardNumber, + pub card_exp_month: Secret, + pub card_exp_year: Secret, + pub card_holder_name: Option>, + pub card_cvc: Secret, + pub card_issuer: Option, + pub card_network: Option, + pub card_type: Option, + pub card_issuing_country: Option, + pub bank_code: Option, + pub nick_name: Option>, +} + +#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)] +pub enum CardRedirectData { + Knet {}, + Benefit {}, + MomoAtm {}, + CardRedirect {}, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub enum PayLaterData { + KlarnaRedirect { + billing_email: Email, + billing_country: common_enums::CountryAlpha2, + }, + KlarnaSdk { + token: String, + }, + AffirmRedirect {}, + AfterpayClearpayRedirect { + billing_email: Email, + billing_name: Secret, + }, + PayBrightRedirect {}, + WalleyRedirect {}, + AlmaRedirect {}, + AtomeRedirect {}, +} + +#[derive(Eq, PartialEq, Clone, Debug)] + +pub enum WalletData { + AliPayQr(Box), + AliPayRedirect(AliPayRedirection), + AliPayHkRedirect(AliPayHkRedirection), + MomoRedirect(MomoRedirection), + KakaoPayRedirect(KakaoPayRedirection), + GoPayRedirect(GoPayRedirection), + GcashRedirect(GcashRedirection), + ApplePay(ApplePayWalletData), + ApplePayRedirect(Box), + ApplePayThirdPartySdk(Box), + DanaRedirect {}, + GooglePay(GooglePayWalletData), + GooglePayRedirect(Box), + GooglePayThirdPartySdk(Box), + MbWayRedirect(Box), + MobilePayRedirect(Box), + PaypalRedirect(PaypalRedirection), + PaypalSdk(PayPalWalletData), + SamsungPay(Box), + TwintRedirect {}, + VippsRedirect {}, + TouchNGoRedirect(Box), + WeChatPayRedirect(Box), + WeChatPayQr(Box), + CashappQr(Box), + SwishQr(SwishQrData), +} + +#[derive(Eq, PartialEq, Clone, Debug)] + +pub struct SamsungPayWalletData { + /// The encrypted payment token from Samsung + pub token: Secret, +} + +#[derive(Eq, PartialEq, Clone, Debug)] + +pub struct GooglePayWalletData { + /// The type of payment method + pub pm_type: String, + /// User-facing message to describe the payment method that funds this transaction. + pub description: String, + /// The information of the payment method + pub info: GooglePayPaymentMethodInfo, + /// The tokenization data of Google pay + pub tokenization_data: GpayTokenizationData, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct ApplePayRedirectData {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct GooglePayRedirectData {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct GooglePayThirdPartySdkData {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct ApplePayThirdPartySdkData {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct WeChatPayRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct WeChatPay {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct WeChatPayQr {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct CashappQr {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct PaypalRedirection { + /// paypal's email address + pub email: Option, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct AliPayQr {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct AliPayRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct AliPayHkRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct MomoRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct KakaoPayRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct GoPayRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct GcashRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct MobilePayRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct MbWayRedirection { + /// Telephone number of the shopper. Should be Portuguese phone number. + pub telephone_number: Secret, +} + +#[derive(Eq, PartialEq, Clone, Debug)] + +pub struct GooglePayPaymentMethodInfo { + /// The name of the card network + pub card_network: String, + /// The details of the card + pub card_details: String, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct PayPalWalletData { + /// Token generated for the Apple pay + pub token: String, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct TouchNGoRedirection {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct SwishQrData {} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct GpayTokenizationData { + /// The type of the token + pub token_type: String, + /// Token generated for the wallet + pub token: String, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct ApplePayWalletData { + /// The payment data of Apple pay + pub payment_data: String, + /// The payment method of Apple pay + pub payment_method: ApplepayPaymentMethod, + /// The unique identifier for the transaction + pub transaction_identifier: String, +} + +#[derive(Eq, PartialEq, Clone, Debug)] +pub struct ApplepayPaymentMethod { + pub display_name: String, + pub network: String, + pub pm_type: String, +} + +#[derive(Debug, Clone, Eq, PartialEq)] + +pub enum BankRedirectData { + BancontactCard { + card_number: Option, + card_exp_month: Option>, + card_exp_year: Option>, + card_holder_name: Option>, + billing_details: Option, + }, + Bizum {}, + Blik { + blik_code: Option, + }, + Eps { + billing_details: Option, + bank_name: Option, + country: Option, + }, + Giropay { + billing_details: Option, + bank_account_bic: Option>, + bank_account_iban: Option>, + country: Option, + }, + Ideal { + billing_details: Option, + bank_name: Option, + country: Option, + }, + Interac { + country: common_enums::CountryAlpha2, + email: Email, + }, + OnlineBankingCzechRepublic { + issuer: common_enums::BankNames, + }, + OnlineBankingFinland { + email: Option, + }, + OnlineBankingPoland { + issuer: common_enums::BankNames, + }, + OnlineBankingSlovakia { + issuer: common_enums::BankNames, + }, + OpenBankingUk { + issuer: Option, + country: Option, + }, + Przelewy24 { + bank_name: Option, + billing_details: BankRedirectBilling, + }, + Sofort { + billing_details: Option, + country: Option, + preferred_language: Option, + }, + Trustly { + country: common_enums::CountryAlpha2, + }, + OnlineBankingFpx { + issuer: common_enums::BankNames, + }, + OnlineBankingThailand { + issuer: common_enums::BankNames, + }, +} + +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct BankRedirectBilling { + pub billing_name: Option>, + pub email: Option, +} + +impl From for PaymentMethodData { + fn from(api_model_payment_method_data: api_models::payments::PaymentMethodData) -> Self { + match api_model_payment_method_data { + api_models::payments::PaymentMethodData::Card(card_data) => { + Self::Card(Card::from(card_data)) + } + api_models::payments::PaymentMethodData::CardRedirect(card_redirect) => { + Self::CardRedirect(From::from(card_redirect)) + } + api_models::payments::PaymentMethodData::Wallet(wallet_data) => { + Self::Wallet(wallet_data) + } + api_models::payments::PaymentMethodData::PayLater(pay_later_data) => { + Self::PayLater(pay_later_data) + } + api_models::payments::PaymentMethodData::BankRedirect(bank_redirect_data) => { + Self::BankRedirect(bank_redirect_data) + } + api_models::payments::PaymentMethodData::BankDebit(bank_debit_data) => { + Self::BankDebit(bank_debit_data) + } + api_models::payments::PaymentMethodData::BankTransfer(bank_transfer_data) => { + Self::BankTransfer(bank_transfer_data) + } + api_models::payments::PaymentMethodData::Crypto(crypto_data) => { + Self::Crypto(crypto_data) + } + api_models::payments::PaymentMethodData::MandatePayment => Self::MandatePayment, + api_models::payments::PaymentMethodData::Reward => Self::Reward, + api_models::payments::PaymentMethodData::Upi(upi_data) => Self::Upi(upi_data), + api_models::payments::PaymentMethodData::Voucher(voucher_data) => { + Self::Voucher(voucher_data) + } + api_models::payments::PaymentMethodData::GiftCard(gift_card) => { + Self::GiftCard(gift_card) + } + api_models::payments::PaymentMethodData::CardToken(card_token) => { + Self::CardToken(card_token) + } + } + } +} + +impl From for Card { + fn from(value: api_models::payments::Card) -> Self { + let api_models::payments::Card { + card_number, + card_exp_month, + card_exp_year, + card_holder_name, + card_cvc, + card_issuer, + card_network, + card_type, + card_issuing_country, + bank_code, + nick_name, + } = value; + + Self { + card_number, + card_exp_month, + card_exp_year, + card_holder_name, + card_cvc, + card_issuer, + card_network, + card_type, + card_issuing_country, + bank_code, + nick_name, + } + } +} + +impl From for CardRedirectData { + fn from(value: api_models::payments::CardRedirectData) -> Self { + match value { + api_models::payments::CardRedirectData::Knet {} => Self::Knet {}, + api_models::payments::CardRedirectData::Benefit {} => Self::Benefit {}, + api_models::payments::CardRedirectData::MomoAtm {} => Self::MomoAtm {}, + api_models::payments::CardRedirectData::CardRedirect {} => Self::CardRedirect {}, + } + } +} diff --git a/crates/router/src/utils/verify_connector.rs b/crates/router/src/utils/verify_connector.rs index acb2f60963..0d1deeaaed 100644 --- a/crates/router/src/utils/verify_connector.rs +++ b/crates/router/src/utils/verify_connector.rs @@ -1,15 +1,15 @@ use api_models::enums::Connector; use error_stack::ResultExt; -use crate::{core::errors, types::api}; +use crate::{core::errors, types::domain}; pub fn generate_card_from_details( card_number: String, card_exp_year: String, card_exp_month: String, card_cvv: String, -) -> errors::RouterResult { - Ok(api::Card { +) -> errors::RouterResult { + Ok(domain::Card { card_number: card_number .parse::() .change_context(errors::ApiErrorResponse::InternalServerError) @@ -27,7 +27,9 @@ pub fn generate_card_from_details( }) } -pub fn get_test_card_details(connector_name: Connector) -> errors::RouterResult> { +pub fn get_test_card_details( + connector_name: Connector, +) -> errors::RouterResult> { match connector_name { Connector::Stripe => Some(generate_card_from_details( "4242424242424242".to_string(), diff --git a/crates/router/tests/connectors/aci.rs b/crates/router/tests/connectors/aci.rs index a2c05a1a67..6cf8fe9994 100644 --- a/crates/router/tests/connectors/aci.rs +++ b/crates/router/tests/connectors/aci.rs @@ -36,7 +36,7 @@ fn construct_payment_router_data() -> types::PaymentsAuthorizeRouterData { request: types::PaymentsAuthorizeData { amount: 1000, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Card(types::api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4200000000000000").unwrap(), card_exp_month: Secret::new("10".to_string()), card_exp_year: Secret::new("2025".to_string()), @@ -240,7 +240,7 @@ async fn payments_create_failure() { > = connector.connector.get_connector_integration(); let mut request = construct_payment_router_data(); request.request.payment_method_data = - types::api::PaymentMethodData::Card(types::api::Card { + types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4200000000000000").unwrap(), card_exp_month: Secret::new("10".to_string()), card_exp_year: Secret::new("2025".to_string()), diff --git a/crates/router/tests/connectors/adyen.rs b/crates/router/tests/connectors/adyen.rs index d1b0a3858e..8a7b1370d4 100644 --- a/crates/router/tests/connectors/adyen.rs +++ b/crates/router/tests/connectors/adyen.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use api_models::payments::{Address, AddressDetails}; use masking::Secret; -use router::types::{self, api, storage::enums, PaymentAddress}; +use router::types::{self, storage::enums, PaymentAddress}; use crate::{ connector_auth, @@ -97,16 +97,16 @@ impl AdyenTest { None, )), payout_method_data: match payout_type { - enums::PayoutType::Card => { - Some(api::PayoutMethodData::Card(api::payouts::CardPayout { + enums::PayoutType::Card => Some(types::api::PayoutMethodData::Card( + types::api::payouts::CardPayout { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), expiry_month: Secret::new("3".to_string()), expiry_year: Secret::new("2030".to_string()), card_holder_name: Some(Secret::new("John Doe".to_string())), - })) - } - enums::PayoutType::Bank => Some(api::PayoutMethodData::Bank( - api::payouts::BankPayout::Sepa(api::SepaBankTransfer { + }, + )), + enums::PayoutType::Bank => Some(types::api::PayoutMethodData::Bank( + types::api::payouts::BankPayout::Sepa(types::api::SepaBankTransfer { iban: "NL46TEST0136169112".to_string().into(), bic: Some("ABNANL2A".to_string().into()), bank_name: Some("Deutsche Bank".to_string()), @@ -114,8 +114,8 @@ impl AdyenTest { bank_city: Some("Amsterdam".to_string()), }), )), - enums::PayoutType::Wallet => Some(api::PayoutMethodData::Wallet( - api::payouts::WalletPayout::Paypal(api_models::payouts::Paypal { + enums::PayoutType::Wallet => Some(types::api::PayoutMethodData::Wallet( + types::api::payouts::WalletPayout::Paypal(api_models::payouts::Paypal { email: Email::from_str("EmailUsedForPayPalAccount@example.com").ok(), }), )), @@ -134,7 +134,7 @@ impl AdyenTest { Some(types::PaymentsAuthorizeData { amount: 3500, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Card(types::api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str(card_number).unwrap(), card_exp_month: Secret::new(card_exp_month.to_string()), card_exp_year: Secret::new(card_exp_year.to_string()), @@ -445,7 +445,7 @@ async fn should_fail_payment_for_incorrect_card_number() { .make_payment( Some(types::PaymentsAuthorizeData { router_return_url: Some(String::from("http://localhost:8080")), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4024007134364842").unwrap(), ..utils::CCardType::default().0 }), @@ -465,7 +465,7 @@ async fn should_fail_payment_for_incorrect_cvc() { .make_payment( Some(types::PaymentsAuthorizeData { router_return_url: Some(String::from("http://localhost:8080")), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -488,7 +488,7 @@ async fn should_fail_payment_for_invalid_exp_month() { .make_payment( Some(types::PaymentsAuthorizeData { router_return_url: Some(String::from("http://localhost:8080")), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -509,7 +509,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { .make_payment( Some(types::PaymentsAuthorizeData { router_return_url: Some(String::from("http://localhost:8080")), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/airwallex.rs b/crates/router/tests/connectors/airwallex.rs index cfc4c0c003..aa0da69350 100644 --- a/crates/router/tests/connectors/airwallex.rs +++ b/crates/router/tests/connectors/airwallex.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::{PeekInterface, Secret}; -use router::types::{self, api, storage::enums, AccessToken}; +use router::types::{self, domain, storage::enums, AccessToken}; use crate::{ connector_auth, @@ -56,7 +56,7 @@ fn get_default_payment_info() -> Option { } fn payment_method_details() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4035501000000008").unwrap(), card_exp_month: Secret::new("02".to_string()), card_exp_year: Secret::new("2035".to_string()), @@ -357,7 +357,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -380,7 +380,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -403,7 +403,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -426,7 +426,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/authorizedotnet.rs b/crates/router/tests/connectors/authorizedotnet.rs index 3ae4298e83..0020653916 100644 --- a/crates/router/tests/connectors/authorizedotnet.rs +++ b/crates/router/tests/connectors/authorizedotnet.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -37,8 +37,8 @@ impl utils::Connector for AuthorizedotnetTest { } static CONNECTOR: AuthorizedotnetTest = AuthorizedotnetTest {}; -fn get_payment_method_data() -> api::Card { - api::Card { +fn get_payment_method_data() -> domain::Card { + domain::Card { card_number: cards::CardNumber::from_str("5424000000000015").unwrap(), card_exp_month: Secret::new("02".to_string()), card_exp_year: Secret::new("2035".to_string()), @@ -56,7 +56,9 @@ async fn should_only_authorize_payment() { .authorize_payment( Some(types::PaymentsAuthorizeData { amount: 300, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -91,7 +93,9 @@ async fn should_capture_authorized_payment() { .authorize_payment( Some(types::PaymentsAuthorizeData { amount: 301, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -153,7 +157,9 @@ async fn should_partially_capture_authorized_payment() { .authorize_payment( Some(types::PaymentsAuthorizeData { amount: 302, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -215,7 +221,9 @@ async fn should_sync_authorized_payment() { .authorize_payment( Some(types::PaymentsAuthorizeData { amount: 303, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -249,7 +257,9 @@ async fn should_void_authorized_payment() { .authorize_payment( Some(types::PaymentsAuthorizeData { amount: 304, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -298,7 +308,9 @@ async fn should_make_payment() { .make_payment( Some(types::PaymentsAuthorizeData { amount: 310, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -336,7 +348,9 @@ async fn should_sync_auto_captured_payment() { .make_payment( Some(types::PaymentsAuthorizeData { amount: 311, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), @@ -389,7 +403,7 @@ async fn should_fail_payment_for_empty_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("").unwrap(), ..utils::CCardType::default().0 }), @@ -412,7 +426,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -435,7 +449,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -457,7 +471,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), @@ -480,7 +494,9 @@ async fn should_fail_void_payment_for_auto_capture() { .make_payment( Some(types::PaymentsAuthorizeData { amount: 307, - payment_method_data: types::api::PaymentMethodData::Card(get_payment_method_data()), + payment_method_data: types::domain::PaymentMethodData::Card( + get_payment_method_data(), + ), capture_method: Some(diesel_models::enums::CaptureMethod::Manual), ..utils::PaymentAuthorizeType::default().0 }), diff --git a/crates/router/tests/connectors/bambora.rs b/crates/router/tests/connectors/bambora.rs index 9da29bb303..e613696bd9 100644 --- a/crates/router/tests/connectors/bambora.rs +++ b/crates/router/tests/connectors/bambora.rs @@ -1,8 +1,7 @@ use std::str::FromStr; -use api_models::payments::PaymentMethodData; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -41,7 +40,7 @@ static CONNECTOR: BamboraTest = BamboraTest {}; fn get_default_payment_authorize_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4030000010001234").unwrap(), card_exp_year: Secret::new("25".to_string()), card_cvc: Secret::new("123".to_string()), @@ -295,7 +294,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), card_exp_year: Secret::new("25".to_string()), ..utils::CCardType::default().0 @@ -318,7 +317,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("25".to_string()), card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 @@ -341,7 +340,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), card_number: cards::CardNumber::from_str("4030000010001234").unwrap(), card_exp_year: Secret::new("25".to_string()), @@ -366,7 +365,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), card_number: cards::CardNumber::from_str("4030000010001234").unwrap(), card_cvc: Secret::new("123".to_string()), diff --git a/crates/router/tests/connectors/bankofamerica.rs b/crates/router/tests/connectors/bankofamerica.rs index 766078fa19..938a5eaf83 100644 --- a/crates/router/tests/connectors/bankofamerica.rs +++ b/crates/router/tests/connectors/bankofamerica.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -303,7 +303,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -325,7 +325,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -347,7 +347,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/billwerk.rs b/crates/router/tests/connectors/billwerk.rs index 1dec066e5d..b1062478bf 100644 --- a/crates/router/tests/connectors/billwerk.rs +++ b/crates/router/tests/connectors/billwerk.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -303,7 +303,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -325,7 +325,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -347,7 +347,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/bitpay.rs b/crates/router/tests/connectors/bitpay.rs index d26a4c0cd6..9a3bbeb8a2 100644 --- a/crates/router/tests/connectors/bitpay.rs +++ b/crates/router/tests/connectors/bitpay.rs @@ -68,7 +68,7 @@ fn payment_method_details() -> Option { Some(types::PaymentsAuthorizeData { amount: 1, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Crypto(CryptoData { + payment_method_data: types::domain::PaymentMethodData::Crypto(CryptoData { pay_currency: None, }), confirm: true, diff --git a/crates/router/tests/connectors/bluesnap.rs b/crates/router/tests/connectors/bluesnap.rs index ac89e4e6ea..475953ce15 100644 --- a/crates/router/tests/connectors/bluesnap.rs +++ b/crates/router/tests/connectors/bluesnap.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use api_models::payments::{Address, AddressDetails}; use common_utils::pii::Email; use masking::Secret; -use router::types::{self, api, storage::enums, ConnectorAuthType, PaymentAddress}; +use router::types::{self, domain, storage::enums, ConnectorAuthType, PaymentAddress}; use crate::{ connector_auth, @@ -401,7 +401,7 @@ async fn should_fail_payment_for_incorrect_cvc() { .make_payment( Some(types::PaymentsAuthorizeData { email: Some(Email::from_str("test@gmail.com").unwrap()), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_holder_name: Some(masking::Secret::new("John Doe".to_string())), card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 @@ -427,7 +427,7 @@ async fn should_fail_payment_for_invalid_exp_month() { .make_payment( Some(types::PaymentsAuthorizeData { email: Some(Email::from_str("test@gmail.com").unwrap()), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_holder_name: Some(masking::Secret::new("John Doe".to_string())), card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 @@ -453,7 +453,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { .make_payment( Some(types::PaymentsAuthorizeData { email: Some(Email::from_str("test@gmail.com").unwrap()), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_holder_name: Some(masking::Secret::new("John Doe".to_string())), card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 diff --git a/crates/router/tests/connectors/boku.rs b/crates/router/tests/connectors/boku.rs index 9c8ac961ca..995cae5a23 100644 --- a/crates/router/tests/connectors/boku.rs +++ b/crates/router/tests/connectors/boku.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -302,7 +302,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -324,7 +324,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/cashtocode.rs b/crates/router/tests/connectors/cashtocode.rs index c8dd4abff2..616a080699 100644 --- a/crates/router/tests/connectors/cashtocode.rs +++ b/crates/router/tests/connectors/cashtocode.rs @@ -1,5 +1,5 @@ use api_models::payments::{Address, AddressDetails}; -use router::types::{self, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -39,7 +39,7 @@ static CONNECTOR: CashtocodeTest = CashtocodeTest {}; impl CashtocodeTest { fn get_payment_authorize_data( payment_method_type: Option, - payment_method_data: types::api::PaymentMethodData, + payment_method_data: types::domain::PaymentMethodData, ) -> Option { Some(types::PaymentsAuthorizeData { amount: 1000, @@ -102,7 +102,7 @@ async fn should_fetch_pay_url_classic() { .make_payment( CashtocodeTest::get_payment_authorize_data( Some(enums::PaymentMethodType::ClassicReward), - api_models::payments::PaymentMethodData::Reward, + domain::payments::PaymentMethodData::Reward, ), CashtocodeTest::get_payment_info(), ) @@ -120,7 +120,7 @@ async fn should_fetch_pay_url_evoucher() { .make_payment( CashtocodeTest::get_payment_authorize_data( Some(enums::PaymentMethodType::Evoucher), - api_models::payments::PaymentMethodData::Reward, + domain::payments::PaymentMethodData::Reward, ), CashtocodeTest::get_payment_info(), ) diff --git a/crates/router/tests/connectors/checkout.rs b/crates/router/tests/connectors/checkout.rs index 1c369332ef..5e2592eaa3 100644 --- a/crates/router/tests/connectors/checkout.rs +++ b/crates/router/tests/connectors/checkout.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -320,7 +320,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -343,7 +343,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -366,7 +366,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/coinbase.rs b/crates/router/tests/connectors/coinbase.rs index a88f138094..d580b50fb5 100644 --- a/crates/router/tests/connectors/coinbase.rs +++ b/crates/router/tests/connectors/coinbase.rs @@ -70,7 +70,7 @@ fn payment_method_details() -> Option { Some(types::PaymentsAuthorizeData { amount: 1, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Crypto(CryptoData { + payment_method_data: types::domain::PaymentMethodData::Crypto(CryptoData { pay_currency: None, }), confirm: true, diff --git a/crates/router/tests/connectors/cryptopay.rs b/crates/router/tests/connectors/cryptopay.rs index 4d7825f7de..014f7a7e3d 100644 --- a/crates/router/tests/connectors/cryptopay.rs +++ b/crates/router/tests/connectors/cryptopay.rs @@ -69,7 +69,7 @@ fn payment_method_details() -> Option { Some(types::PaymentsAuthorizeData { amount: 1, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Crypto(CryptoData { + payment_method_data: types::domain::PaymentMethodData::Crypto(CryptoData { pay_currency: Some("XRP".to_string()), }), confirm: true, diff --git a/crates/router/tests/connectors/cybersource.rs b/crates/router/tests/connectors/cybersource.rs index d438ff45f6..98ec44abd8 100644 --- a/crates/router/tests/connectors/cybersource.rs +++ b/crates/router/tests/connectors/cybersource.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use common_utils::pii::Email; use masking::Secret; use router::types::{ - self, api, + self, api, domain, storage::{self, enums}, }; @@ -160,7 +160,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = Cybersource {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("13".to_string()), ..utils::CCardType::default().0 }), @@ -185,7 +185,7 @@ async fn should_fail_payment_for_invalid_exp_year() { let response = Cybersource {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2022".to_string()), ..utils::CCardType::default().0 }), @@ -203,7 +203,7 @@ async fn should_fail_payment_for_invalid_card_cvc() { let response = Cybersource {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("2131233213".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/dlocal.rs b/crates/router/tests/connectors/dlocal.rs index 0767bb9ac3..b42e7d2f51 100644 --- a/crates/router/tests/connectors/dlocal.rs +++ b/crates/router/tests/connectors/dlocal.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use api_models::payments::Address; use masking::Secret; -use router::types::{self, api, storage::enums, PaymentAddress}; +use router::types::{self, api, domain, storage::enums, PaymentAddress}; use crate::{ connector_auth, @@ -289,7 +289,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("1891011").unwrap(), ..utils::CCardType::default().0 }), @@ -310,7 +310,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("1ad2345".to_string()), ..utils::CCardType::default().0 }), @@ -331,7 +331,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("201".to_string()), ..utils::CCardType::default().0 }), @@ -352,7 +352,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("20001".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/dummyconnector.rs b/crates/router/tests/connectors/dummyconnector.rs index 75252e85ed..34a351241b 100644 --- a/crates/router/tests/connectors/dummyconnector.rs +++ b/crates/router/tests/connectors/dummyconnector.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use cards::CardNumber; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -305,7 +305,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -327,7 +327,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -349,7 +349,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -371,7 +371,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/fiserv.rs b/crates/router/tests/connectors/fiserv.rs index 36d5f66dbc..f564f31df1 100644 --- a/crates/router/tests/connectors/fiserv.rs +++ b/crates/router/tests/connectors/fiserv.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use serde_json::json; use crate::{ @@ -42,7 +42,7 @@ impl utils::Connector for FiservTest { fn payment_method_details() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4005550000000019").unwrap(), card_exp_month: Secret::new("02".to_string()), card_exp_year: Secret::new("2035".to_string()), @@ -348,7 +348,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -371,7 +371,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -394,7 +394,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -417,7 +417,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/forte.rs b/crates/router/tests/connectors/forte.rs index 19dbaa26f3..d09255182e 100644 --- a/crates/router/tests/connectors/forte.rs +++ b/crates/router/tests/connectors/forte.rs @@ -2,7 +2,7 @@ use std::{str::FromStr, time::Duration}; use cards::CardNumber; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, api, domain, storage::enums}; use crate::{ connector_auth, @@ -41,7 +41,7 @@ static CONNECTOR: ForteTest = ForteTest {}; fn get_payment_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: CardNumber::from_str("4111111111111111").unwrap(), ..utils::CCardType::default().0 }), @@ -466,7 +466,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -488,7 +488,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -511,7 +511,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), @@ -629,7 +629,7 @@ async fn should_fail_for_refund_amount_higher_than_payment_amount() { #[actix_web::test] async fn should_throw_not_implemented_for_unsupported_issuer() { let authorize_data = Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: CardNumber::from_str("6759649826438453").unwrap(), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/globalpay.rs b/crates/router/tests/connectors/globalpay.rs index 8afa2f0ccf..e2ca19869f 100644 --- a/crates/router/tests/connectors/globalpay.rs +++ b/crates/router/tests/connectors/globalpay.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums, AccessToken, ConnectorAuthType}; +use router::types::{self, api, domain, storage::enums, AccessToken, ConnectorAuthType}; use serde_json::json; use crate::{ @@ -137,7 +137,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4024007134364842").unwrap(), ..utils::CCardType::default().0 }), @@ -345,7 +345,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), @@ -367,7 +367,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/globepay.rs b/crates/router/tests/connectors/globepay.rs index fcf61dd6b3..7fedcf85de 100644 --- a/crates/router/tests/connectors/globepay.rs +++ b/crates/router/tests/connectors/globepay.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -304,7 +304,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -326,7 +326,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -348,7 +348,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/gocardless.rs b/crates/router/tests/connectors/gocardless.rs index f19e90941b..3efb86446d 100644 --- a/crates/router/tests/connectors/gocardless.rs +++ b/crates/router/tests/connectors/gocardless.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -302,7 +302,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -324,7 +324,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/helcim.rs b/crates/router/tests/connectors/helcim.rs index c9a891988f..f434f3b8a6 100644 --- a/crates/router/tests/connectors/helcim.rs +++ b/crates/router/tests/connectors/helcim.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -302,7 +302,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -324,7 +324,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/multisafepay.rs b/crates/router/tests/connectors/multisafepay.rs index 98b615b803..eafc8a22ff 100644 --- a/crates/router/tests/connectors/multisafepay.rs +++ b/crates/router/tests/connectors/multisafepay.rs @@ -1,6 +1,6 @@ use api_models::payments::{Address, AddressDetails}; use masking::Secret; -use router::types::{self, api, storage::enums, PaymentAddress}; +use router::types::{self, domain, storage::enums, PaymentAddress}; use crate::{ connector_auth, @@ -331,7 +331,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("123498765".to_string()), ..utils::CCardType::default().0 }), @@ -350,7 +350,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -369,7 +369,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/nexinets.rs b/crates/router/tests/connectors/nexinets.rs index 174e49fbc8..7f42048c98 100644 --- a/crates/router/tests/connectors/nexinets.rs +++ b/crates/router/tests/connectors/nexinets.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use cards::CardNumber; use masking::Secret; -use router::types::{self, api, storage::enums, PaymentsAuthorizeData}; +use router::types::{self, domain, storage::enums, PaymentsAuthorizeData}; use crate::{ connector_auth, @@ -41,7 +41,7 @@ impl utils::Connector for NexinetsTest { fn payment_method_details() -> Option { Some(PaymentsAuthorizeData { currency: diesel_models::enums::Currency::EUR, - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: CardNumber::from_str("374111111111111").unwrap(), ..utils::CCardType::default().0 }), @@ -505,7 +505,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -527,7 +527,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -549,7 +549,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/nmi.rs b/crates/router/tests/connectors/nmi.rs index 24e1d69a60..5b569fa497 100644 --- a/crates/router/tests/connectors/nmi.rs +++ b/crates/router/tests/connectors/nmi.rs @@ -1,6 +1,6 @@ use std::{str::FromStr, time::Duration}; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -38,7 +38,7 @@ static CONNECTOR: NmiTest = NmiTest {}; fn get_payment_authorize_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/noon.rs b/crates/router/tests/connectors/noon.rs index 0f736e3e52..1345358024 100644 --- a/crates/router/tests/connectors/noon.rs +++ b/crates/router/tests/connectors/noon.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use masking::Secret; use router::types::{ - self, api, + self, storage::{self, enums}, }; @@ -312,7 +312,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -334,7 +334,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -356,7 +356,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -378,7 +378,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/nuvei.rs b/crates/router/tests/connectors/nuvei.rs index 5d266fb46f..26e141d816 100644 --- a/crates/router/tests/connectors/nuvei.rs +++ b/crates/router/tests/connectors/nuvei.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use masking::Secret; use router::types::{ - self, api, + self, storage::{self, enums}, }; use serde_json::json; @@ -44,7 +44,7 @@ static CONNECTOR: NuveiTest = NuveiTest {}; fn get_payment_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4444 3333 2222 1111").unwrap(), ..utils::CCardType::default().0 }), @@ -249,7 +249,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -271,7 +271,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -293,7 +293,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -315,7 +315,7 @@ async fn should_succeed_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4000027891380961").unwrap(), card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 diff --git a/crates/router/tests/connectors/opayo.rs b/crates/router/tests/connectors/opayo.rs index 97d744d1e9..d05bcef110 100644 --- a/crates/router/tests/connectors/opayo.rs +++ b/crates/router/tests/connectors/opayo.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -307,7 +307,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -329,7 +329,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -351,7 +351,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -373,7 +373,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/opennode.rs b/crates/router/tests/connectors/opennode.rs index b01b251b24..9875fdfa23 100644 --- a/crates/router/tests/connectors/opennode.rs +++ b/crates/router/tests/connectors/opennode.rs @@ -69,7 +69,7 @@ fn payment_method_details() -> Option { Some(types::PaymentsAuthorizeData { amount: 1, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Crypto(CryptoData { + payment_method_data: types::domain::PaymentMethodData::Crypto(CryptoData { pay_currency: None, }), confirm: true, diff --git a/crates/router/tests/connectors/payeezy.rs b/crates/router/tests/connectors/payeezy.rs index 0cdf709f36..320db9c776 100644 --- a/crates/router/tests/connectors/payeezy.rs +++ b/crates/router/tests/connectors/payeezy.rs @@ -5,7 +5,7 @@ use cards::CardNumber; use masking::Secret; use router::{ core::errors, - types::{self, api, storage::enums, PaymentsAuthorizeData}, + types::{self, storage::enums, PaymentsAuthorizeData}, }; use crate::{ @@ -46,7 +46,7 @@ impl utils::Connector for PayeezyTest { impl PayeezyTest { fn get_payment_data() -> Option { Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: CardNumber::from_str("4012000033330026").unwrap(), ..utils::CCardType::default().0 }), @@ -371,7 +371,7 @@ async fn should_sync_refund() {} #[actix_web::test] async fn should_throw_not_implemented_for_unsupported_issuer() { let authorize_data = Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: CardNumber::from_str("630495060000000000").unwrap(), ..utils::CCardType::default().0 }), @@ -396,7 +396,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_cvc: Secret::new("12345d".to_string()), ..utils::CCardType::default().0 }), @@ -418,7 +418,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -440,7 +440,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/payme.rs b/crates/router/tests/connectors/payme.rs index 62c1bac94d..0e53f096ef 100644 --- a/crates/router/tests/connectors/payme.rs +++ b/crates/router/tests/connectors/payme.rs @@ -3,7 +3,7 @@ use std::str::FromStr; use api_models::payments::{Address, AddressDetails, OrderDetailsWithAmount}; use common_utils::pii::Email; use masking::Secret; -use router::types::{self, api, storage::enums, PaymentAddress}; +use router::types::{self, domain, storage::enums, PaymentAddress}; use crate::{ connector_auth, @@ -90,7 +90,7 @@ fn payment_method_details() -> Option { router_return_url: Some("https://hyperswitch.io".to_string()), webhook_url: Some("https://hyperswitch.io".to_string()), email: Some(Email::from_str("test@gmail.com").unwrap()), - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_cvc: Secret::new("123".to_string()), card_exp_month: Secret::new("10".to_string()), @@ -372,7 +372,7 @@ async fn should_fail_payment_for_incorrect_cvc() { Some(types::PaymentsAuthorizeData { amount: 100, currency: enums::Currency::ILS, - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -410,7 +410,7 @@ async fn should_fail_payment_for_invalid_exp_month() { Some(types::PaymentsAuthorizeData { amount: 100, currency: enums::Currency::ILS, - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -448,7 +448,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { Some(types::PaymentsAuthorizeData { amount: 100, currency: enums::Currency::ILS, - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2012".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/paypal.rs b/crates/router/tests/connectors/paypal.rs index 874f6cda1d..adef1d202a 100644 --- a/crates/router/tests/connectors/paypal.rs +++ b/crates/router/tests/connectors/paypal.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums, AccessToken, ConnectorAuthType}; +use router::types::{self, domain, storage::enums, AccessToken, ConnectorAuthType}; use crate::{ connector_auth, @@ -56,7 +56,7 @@ fn get_default_payment_info() -> Option { fn get_payment_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4000020000000000").unwrap(), ..utils::CCardType::default().0 }), @@ -448,7 +448,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -474,7 +474,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -500,7 +500,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/payu.rs b/crates/router/tests/connectors/payu.rs index c73205d9fd..34d7d11995 100644 --- a/crates/router/tests/connectors/payu.rs +++ b/crates/router/tests/connectors/payu.rs @@ -89,7 +89,7 @@ async fn should_authorize_gpay_payment() { let authorize_response = Payu {} .authorize_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Wallet(api::WalletData::GooglePay( + payment_method_data: types::domain::PaymentMethodData::Wallet(api::WalletData::GooglePay( api_models::payments::GooglePayWalletData { pm_type: "CARD".to_string(), description: "Visa1234567890".to_string(), diff --git a/crates/router/tests/connectors/placetopay.rs b/crates/router/tests/connectors/placetopay.rs index b7c70c789d..2290e7b2f3 100644 --- a/crates/router/tests/connectors/placetopay.rs +++ b/crates/router/tests/connectors/placetopay.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -302,7 +302,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -324,7 +324,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/powertranz.rs b/crates/router/tests/connectors/powertranz.rs index eca3f86b56..75d6f7fe1d 100644 --- a/crates/router/tests/connectors/powertranz.rs +++ b/crates/router/tests/connectors/powertranz.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -310,7 +310,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -332,7 +332,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -354,7 +354,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/prophetpay.rs b/crates/router/tests/connectors/prophetpay.rs index 94220c11a6..9443ae0850 100644 --- a/crates/router/tests/connectors/prophetpay.rs +++ b/crates/router/tests/connectors/prophetpay.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -302,7 +302,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -324,7 +324,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/rapyd.rs b/crates/router/tests/connectors/rapyd.rs index c53f4e8d8b..5cfb8900ec 100644 --- a/crates/router/tests/connectors/rapyd.rs +++ b/crates/router/tests/connectors/rapyd.rs @@ -2,7 +2,7 @@ use std::str::FromStr; use futures::future::OptionFuture; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use serial_test::serial; use crate::{ @@ -42,7 +42,7 @@ async fn should_only_authorize_payment() { let response = Rapyd {} .authorize_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("02".to_string()), card_exp_year: Secret::new("2024".to_string()), @@ -70,7 +70,7 @@ async fn should_authorize_and_capture_payment() { let response = Rapyd {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("02".to_string()), card_exp_year: Secret::new("2024".to_string()), @@ -153,7 +153,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = Rapyd {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("0000000000000000").unwrap(), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/shift4.rs b/crates/router/tests/connectors/shift4.rs index fe7a232b3e..2e33495460 100644 --- a/crates/router/tests/connectors/shift4.rs +++ b/crates/router/tests/connectors/shift4.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -151,7 +151,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4024007134364842").unwrap(), ..utils::CCardType::default().0 }), @@ -173,7 +173,7 @@ async fn should_succeed_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("asdasd".to_string()), //shift4 accept invalid CVV as it doesn't accept CVV ..utils::CCardType::default().0 }), @@ -192,7 +192,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -214,7 +214,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/square.rs b/crates/router/tests/connectors/square.rs index 62aa8b6d24..597510d6f9 100644 --- a/crates/router/tests/connectors/square.rs +++ b/crates/router/tests/connectors/square.rs @@ -2,7 +2,7 @@ use std::{str::FromStr, time::Duration}; use masking::Secret; use router::types::{ - self, api, + self, storage::{self, enums}, PaymentsResponseData, }; @@ -62,7 +62,7 @@ fn payment_method_details() -> Option { fn token_details() -> Option { Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("04".to_string()), card_exp_year: Secret::new("2027".to_string()), @@ -435,7 +435,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let token_response = CONNECTOR .create_connector_pm_token( Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("11".to_string()), card_exp_year: Secret::new("2027".to_string()), @@ -466,7 +466,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let token_response = CONNECTOR .create_connector_pm_token( Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("20".to_string()), card_exp_year: Secret::new("2027".to_string()), @@ -497,7 +497,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let token_response = CONNECTOR .create_connector_pm_token( Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("11".to_string()), card_exp_year: Secret::new("2000".to_string()), diff --git a/crates/router/tests/connectors/stax.rs b/crates/router/tests/connectors/stax.rs index a1d41f9a92..75ff364e31 100644 --- a/crates/router/tests/connectors/stax.rs +++ b/crates/router/tests/connectors/stax.rs @@ -1,7 +1,7 @@ use std::{str::FromStr, time::Duration}; use masking::Secret; -use router::types::{self, api, storage::enums, PaymentsResponseData}; +use router::types::{self, domain, storage::enums, PaymentsResponseData}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -63,7 +63,7 @@ fn customer_details() -> Option { fn token_details() -> Option { Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("04".to_string()), card_exp_year: Secret::new("2027".to_string()), @@ -473,7 +473,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let token_response = CONNECTOR .create_connector_pm_token( Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("11".to_string()), card_exp_year: Secret::new("2027".to_string()), @@ -511,7 +511,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let token_response = CONNECTOR .create_connector_pm_token( Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("20".to_string()), card_exp_year: Secret::new("2027".to_string()), @@ -549,7 +549,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let token_response = CONNECTOR .create_connector_pm_token( Some(types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4111111111111111").unwrap(), card_exp_month: Secret::new("04".to_string()), card_exp_year: Secret::new("2000".to_string()), diff --git a/crates/router/tests/connectors/stripe.rs b/crates/router/tests/connectors/stripe.rs index 735dedeffb..3dcaeba45b 100644 --- a/crates/router/tests/connectors/stripe.rs +++ b/crates/router/tests/connectors/stripe.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -37,7 +37,7 @@ impl utils::Connector for Stripe { fn get_payment_authorize_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4242424242424242").unwrap(), ..utils::CCardType::default().0 }), @@ -158,7 +158,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = Stripe {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4024007134364842").unwrap(), ..utils::CCardType::default().0 }), @@ -180,7 +180,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = Stripe {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("13".to_string()), ..utils::CCardType::default().0 }), @@ -202,7 +202,7 @@ async fn should_fail_payment_for_invalid_exp_year() { let response = Stripe {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2022".to_string()), ..utils::CCardType::default().0 }), @@ -221,7 +221,7 @@ async fn should_fail_payment_for_invalid_card_cvc() { let response = Stripe {} .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/trustpay.rs b/crates/router/tests/connectors/trustpay.rs index cf659e349d..50856b3bd5 100644 --- a/crates/router/tests/connectors/trustpay.rs +++ b/crates/router/tests/connectors/trustpay.rs @@ -1,7 +1,7 @@ use std::str::FromStr; use masking::Secret; -use router::types::{self, api, storage::enums, BrowserInformation}; +use router::types::{self, api, domain, storage::enums, BrowserInformation}; use crate::{ connector_auth, @@ -53,7 +53,7 @@ fn get_default_browser_info() -> BrowserInformation { fn get_default_payment_authorize_data() -> Option { Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4200000000000000").unwrap(), card_exp_year: Secret::new("25".to_string()), card_cvc: Secret::new("123".to_string()), @@ -182,7 +182,7 @@ async fn should_sync_refund() { #[actix_web::test] async fn should_fail_payment_for_incorrect_card_number() { let payment_authorize_data = types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("1234567891011").unwrap(), card_exp_year: Secret::new("25".to_string()), card_cvc: Secret::new("123".to_string()), @@ -205,7 +205,7 @@ async fn should_fail_payment_for_incorrect_card_number() { #[actix_web::test] async fn should_fail_payment_for_incorrect_expiry_year() { let payment_authorize_data = Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: cards::CardNumber::from_str("4200000000000000").unwrap(), card_exp_year: Secret::new("22".to_string()), card_cvc: Secret::new("123".to_string()), diff --git a/crates/router/tests/connectors/tsys.rs b/crates/router/tests/connectors/tsys.rs index e7a0d747f4..1200541d02 100644 --- a/crates/router/tests/connectors/tsys.rs +++ b/crates/router/tests/connectors/tsys.rs @@ -2,7 +2,7 @@ use std::{str::FromStr, time::Duration}; use cards::CardNumber; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -46,7 +46,7 @@ fn get_default_payment_info() -> Option { fn payment_method_details(amount: i64) -> Option { Some(types::PaymentsAuthorizeData { amount, - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: CardNumber::from_str("4111111111111111").unwrap(), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("".to_string()), ..utils::CCardType::default().0 }), @@ -368,7 +368,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -390,7 +390,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("abcd".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/utils.rs b/crates/router/tests/connectors/utils.rs index 8effc2479c..641253a561 100644 --- a/crates/router/tests/connectors/utils.rs +++ b/crates/router/tests/connectors/utils.rs @@ -11,7 +11,7 @@ use router::{ core::{errors, errors::ConnectorError, payments}, db::StorageImpl, routes, services, - types::{self, api, storage::enums, AccessToken, PaymentAddress, RouterData}, + types::{self, storage::enums, AccessToken, PaymentAddress, RouterData}, }; use test_utils::connector_auth::ConnectorAuthType; use tokio::sync::oneshot; @@ -49,7 +49,7 @@ pub struct PaymentInfo { pub connector_customer: Option, pub payment_method_token: Option, #[cfg(feature = "payouts")] - pub payout_method_data: Option, + pub payout_method_data: Option, pub currency: Option, pub country: Option, } @@ -864,14 +864,14 @@ pub struct PaymentCaptureType(pub types::PaymentsCaptureData); pub struct PaymentCancelType(pub types::PaymentsCancelData); pub struct PaymentSyncType(pub types::PaymentsSyncData); pub struct PaymentRefundType(pub types::RefundsData); -pub struct CCardType(pub api::Card); +pub struct CCardType(pub types::domain::Card); pub struct BrowserInfoType(pub types::BrowserInformation); pub struct CustomerType(pub types::ConnectorCustomerData); pub struct TokenType(pub types::PaymentMethodTokenizationData); impl Default for CCardType { fn default() -> Self { - Self(api::Card { + Self(types::domain::Card { card_number: cards::CardNumber::from_str("4200000000000000").unwrap(), card_exp_month: Secret::new("10".to_string()), card_exp_year: Secret::new("2025".to_string()), @@ -890,7 +890,7 @@ impl Default for CCardType { impl Default for PaymentAuthorizeType { fn default() -> Self { let data = types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(CCardType::default().0), + payment_method_data: types::domain::PaymentMethodData::Card(CCardType::default().0), amount: 100, currency: enums::Currency::USD, confirm: true, @@ -1003,7 +1003,7 @@ impl Default for PaymentRefundType { impl Default for CustomerType { fn default() -> Self { let data = types::ConnectorCustomerData { - payment_method_data: types::api::PaymentMethodData::Card(CCardType::default().0), + payment_method_data: types::domain::PaymentMethodData::Card(CCardType::default().0), description: None, email: Email::from_str("test@juspay.in").ok(), phone: None, @@ -1017,7 +1017,7 @@ impl Default for CustomerType { impl Default for TokenType { fn default() -> Self { let data = types::PaymentMethodTokenizationData { - payment_method_data: types::api::PaymentMethodData::Card(CCardType::default().0), + payment_method_data: types::domain::PaymentMethodData::Card(CCardType::default().0), browser_info: None, amount: Some(100), currency: enums::Currency::USD, diff --git a/crates/router/tests/connectors/volt.rs b/crates/router/tests/connectors/volt.rs index 0df21640c7..f46bbb9d49 100644 --- a/crates/router/tests/connectors/volt.rs +++ b/crates/router/tests/connectors/volt.rs @@ -1,5 +1,5 @@ use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use test_utils::connector_auth; use crate::utils::{self, ConnectorActions}; @@ -302,7 +302,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -324,7 +324,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -346,7 +346,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }), diff --git a/crates/router/tests/connectors/worldline.rs b/crates/router/tests/connectors/worldline.rs index c81dcf15bd..ea26c6c609 100644 --- a/crates/router/tests/connectors/worldline.rs +++ b/crates/router/tests/connectors/worldline.rs @@ -69,7 +69,7 @@ impl WorldlineTest { Some(types::PaymentsAuthorizeData { amount: 3500, currency: enums::Currency::USD, - payment_method_data: types::api::PaymentMethodData::Card(types::api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(types::domain::Card { card_number: cards::CardNumber::from_str(card_number).unwrap(), card_exp_month: Secret::new(card_exp_month.to_string()), card_exp_year: Secret::new(card_exp_year.to_string()), diff --git a/crates/router/tests/connectors/worldpay.rs b/crates/router/tests/connectors/worldpay.rs index bf598e0b37..7606a63b68 100644 --- a/crates/router/tests/connectors/worldpay.rs +++ b/crates/router/tests/connectors/worldpay.rs @@ -62,7 +62,7 @@ async fn should_authorize_gpay_payment() { let response = conn .authorize_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Wallet( + payment_method_data: types::domain::PaymentMethodData::Wallet( api::WalletData::GooglePay(api_models::payments::GooglePayWalletData { pm_type: "CARD".to_string(), description: "Visa1234567890".to_string(), @@ -97,7 +97,7 @@ async fn should_authorize_applepay_payment() { let response = conn .authorize_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Wallet( + payment_method_data: types::domain::PaymentMethodData::Wallet( api::WalletData::ApplePay(api_models::payments::ApplePayWalletData { payment_data: "someData".to_string(), transaction_identifier: "someId".to_string(), diff --git a/crates/router/tests/connectors/zen.rs b/crates/router/tests/connectors/zen.rs index 14b52e7104..d56712fd77 100644 --- a/crates/router/tests/connectors/zen.rs +++ b/crates/router/tests/connectors/zen.rs @@ -4,7 +4,7 @@ use api_models::payments::OrderDetailsWithAmount; use cards::CardNumber; use common_utils::pii::Email; use masking::Secret; -use router::types::{self, api, storage::enums}; +use router::types::{self, domain, storage::enums}; use crate::{ connector_auth, @@ -308,7 +308,7 @@ async fn should_fail_payment_for_incorrect_card_number() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_number: CardNumber::from_str("1234567891011").unwrap(), ..utils::CCardType::default().0 }), @@ -349,7 +349,7 @@ async fn should_fail_payment_for_incorrect_cvc() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_cvc: Secret::new("12345".to_string()), ..utils::CCardType::default().0 }), @@ -390,7 +390,7 @@ async fn should_fail_payment_for_invalid_exp_month() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_month: Secret::new("20".to_string()), ..utils::CCardType::default().0 }), @@ -431,7 +431,7 @@ async fn should_fail_payment_for_incorrect_expiry_year() { let response = CONNECTOR .make_payment( Some(types::PaymentsAuthorizeData { - payment_method_data: types::api::PaymentMethodData::Card(api::Card { + payment_method_data: types::domain::PaymentMethodData::Card(domain::Card { card_exp_year: Secret::new("2000".to_string()), ..utils::CCardType::default().0 }),