Skip to content

Commit

Permalink
refactor(payment_methods): add PayLater payment method data to new do…
Browse files Browse the repository at this point in the history
…main type to be used in connector module (#4165)

Co-authored-by: Narayan Bhat <[email protected]>
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
  • Loading branch information
3 people authored Apr 5, 2024
1 parent 14035d2 commit 6694852
Show file tree
Hide file tree
Showing 11 changed files with 231 additions and 207 deletions.
4 changes: 2 additions & 2 deletions crates/router/src/connector/aci/transformers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -527,14 +527,14 @@ impl
impl
TryFrom<(
&AciRouterData<&types::PaymentsAuthorizeRouterData>,
&api_models::payments::PayLaterData,
&domain::payments::PayLaterData,
)> for AciPaymentsRequest
{
type Error = Error;
fn try_from(
value: (
&AciRouterData<&types::PaymentsAuthorizeRouterData>,
&api_models::payments::PayLaterData,
&domain::payments::PayLaterData,
),
) -> Result<Self, Self::Error> {
let (item, _pay_later_data) = value;
Expand Down
24 changes: 12 additions & 12 deletions crates/router/src/connector/adyen/transformers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2143,7 +2143,7 @@ pub fn check_required_field<'a, T>(

impl<'a>
TryFrom<(
&api::PayLaterData,
&domain::PayLaterData,
&Option<api_enums::CountryAlpha2>,
&Option<Email>,
&Option<String>,
Expand All @@ -2156,7 +2156,7 @@ impl<'a>
type Error = Error;
fn try_from(
value: (
&api::PayLaterData,
&domain::PayLaterData,
&Option<api_enums::CountryAlpha2>,
&Option<Email>,
&Option<String>,
Expand All @@ -2177,7 +2177,7 @@ impl<'a>
delivery_address,
) = value;
match pay_later_data {
api_models::payments::PayLaterData::KlarnaRedirect { .. } => {
domain::payments::PayLaterData::KlarnaRedirect { .. } => {
let klarna = PmdForPaymentType {
payment_type: PaymentType::Klarna,
};
Expand All @@ -2187,7 +2187,7 @@ impl<'a>

Ok(AdyenPaymentMethod::AdyenKlarna(Box::new(klarna)))
}
api_models::payments::PayLaterData::AffirmRedirect { .. } => {
domain::payments::PayLaterData::AffirmRedirect { .. } => {
check_required_field(shopper_email, "email")?;
check_required_field(shopper_name, "billing.first_name, billing.last_name")?;
check_required_field(telephone_number, "billing.phone")?;
Expand All @@ -2199,7 +2199,7 @@ impl<'a>
},
)))
}
api_models::payments::PayLaterData::AfterpayClearpayRedirect { .. } => {
domain::payments::PayLaterData::AfterpayClearpayRedirect { .. } => {
check_required_field(shopper_email, "email")?;
check_required_field(shopper_name, "billing.first_name, billing.last_name")?;
check_required_field(delivery_address, "shipping")?;
Expand All @@ -2221,7 +2221,7 @@ impl<'a>
})?
}
}
api_models::payments::PayLaterData::PayBrightRedirect { .. } => {
domain::payments::PayLaterData::PayBrightRedirect { .. } => {
check_required_field(shopper_name, "billing.first_name, billing.last_name")?;
check_required_field(telephone_number, "billing.phone")?;
check_required_field(shopper_email, "email")?;
Expand All @@ -2230,13 +2230,13 @@ impl<'a>
check_required_field(country_code, "billing.country")?;
Ok(AdyenPaymentMethod::PayBright)
}
api_models::payments::PayLaterData::WalleyRedirect { .. } => {
domain::payments::PayLaterData::WalleyRedirect { .. } => {
//[TODO: Line items specific sub-fields are mandatory]
check_required_field(telephone_number, "billing.phone")?;
check_required_field(shopper_email, "email")?;
Ok(AdyenPaymentMethod::Walley)
}
api_models::payments::PayLaterData::AlmaRedirect { .. } => {
domain::payments::PayLaterData::AlmaRedirect { .. } => {
check_required_field(telephone_number, "billing.phone")?;
check_required_field(shopper_email, "email")?;
check_required_field(billing_address, "billing")?;
Expand All @@ -2247,14 +2247,14 @@ impl<'a>
},
)))
}
api_models::payments::PayLaterData::AtomeRedirect { .. } => {
domain::payments::PayLaterData::AtomeRedirect { .. } => {
check_required_field(shopper_email, "email")?;
check_required_field(shopper_name, "billing.first_name, billing.last_name")?;
check_required_field(telephone_number, "billing.phone")?;
check_required_field(billing_address, "billing")?;
Ok(AdyenPaymentMethod::Atome)
}
payments::PayLaterData::KlarnaSdk { .. } => {
domain::payments::PayLaterData::KlarnaSdk { .. } => {
Err(errors::ConnectorError::NotImplemented(
utils::get_unimplemented_payment_method_error_message("Adyen"),
)
Expand Down Expand Up @@ -3053,14 +3053,14 @@ impl<'a>
impl<'a>
TryFrom<(
&AdyenRouterData<&types::PaymentsAuthorizeRouterData>,
&api::PayLaterData,
&domain::PayLaterData,
)> for AdyenPaymentRequest<'a>
{
type Error = Error;
fn try_from(
value: (
&AdyenRouterData<&types::PaymentsAuthorizeRouterData>,
&api::PayLaterData,
&domain::PayLaterData,
),
) -> Result<Self, Self::Error> {
let (item, paylater_data) = value;
Expand Down
10 changes: 5 additions & 5 deletions crates/router/src/connector/dummyconnector/transformers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,13 +130,13 @@ pub enum DummyConnectorPayLater {
AfterPayClearPay,
}

impl TryFrom<api_models::payments::PayLaterData> for DummyConnectorPayLater {
impl TryFrom<domain::payments::PayLaterData> for DummyConnectorPayLater {
type Error = error_stack::Report<errors::ConnectorError>;
fn try_from(value: api_models::payments::PayLaterData) -> Result<Self, Self::Error> {
fn try_from(value: domain::payments::PayLaterData) -> Result<Self, Self::Error> {
match value {
api_models::payments::PayLaterData::KlarnaRedirect { .. } => Ok(Self::Klarna),
api_models::payments::PayLaterData::AffirmRedirect {} => Ok(Self::Affirm),
api_models::payments::PayLaterData::AfterpayClearpayRedirect { .. } => {
domain::payments::PayLaterData::KlarnaRedirect { .. } => Ok(Self::Klarna),
domain::payments::PayLaterData::AffirmRedirect {} => Ok(Self::Affirm),
domain::payments::PayLaterData::AfterpayClearpayRedirect { .. } => {
Ok(Self::AfterPayClearPay)
}
_ => Err(errors::ConnectorError::NotImplemented("Dummy pay later".to_string()).into()),
Expand Down
Loading

0 comments on commit 6694852

Please sign in to comment.