diff --git a/crates/router/src/connector/aci/transformers.rs b/crates/router/src/connector/aci/transformers.rs index c7dfe23952..4eecc3c1ee 100644 --- a/crates/router/src/connector/aci/transformers.rs +++ b/crates/router/src/connector/aci/transformers.rs @@ -56,6 +56,7 @@ pub enum PaymentDetails { BankAccount(BankDetails), Wallet, Klarna, + Paypal, } #[derive(Clone, Eq, PartialEq, Serialize)] @@ -112,6 +113,7 @@ impl TryFrom<&types::PaymentsRouterData> for AciPaymentsRequest { }), api::PaymentMethod::PayLater(_) => PaymentDetails::Klarna, api::PaymentMethod::Wallet => PaymentDetails::Wallet, + api::PaymentMethod::Paypal => PaymentDetails::Paypal, }; let auth = AciAuthType::try_from(&item.connector_auth_type)?; diff --git a/crates/router/src/connector/adyen/transformers.rs b/crates/router/src/connector/adyen/transformers.rs index 381ef3412a..81bfb2807f 100644 --- a/crates/router/src/connector/adyen/transformers.rs +++ b/crates/router/src/connector/adyen/transformers.rs @@ -209,6 +209,7 @@ impl TryFrom<&types::PaymentsRouterData> for AdyenPaymentRequest { api::PaymentMethod::BankTransfer => None, api::PaymentMethod::Wallet => None, api::PaymentMethod::PayLater(_) => None, + api::PaymentMethod::Paypal => None, }; let shopper_interaction = match item.request.off_session { diff --git a/crates/router/src/connector/authorizedotnet/transformers.rs b/crates/router/src/connector/authorizedotnet/transformers.rs index 66b5c1d46b..54a53056ff 100644 --- a/crates/router/src/connector/authorizedotnet/transformers.rs +++ b/crates/router/src/connector/authorizedotnet/transformers.rs @@ -59,6 +59,7 @@ enum PaymentDetails { BankAccount(BankAccountDetails), Wallet, Klarna, + Paypal, } #[derive(Serialize, PartialEq)] @@ -146,6 +147,7 @@ impl TryFrom<&types::PaymentsRouterData> for CreateTransactionRequest { }), api::PaymentMethod::PayLater(_) => PaymentDetails::Klarna, api::PaymentMethod::Wallet => PaymentDetails::Wallet, + api::PaymentMethod::Paypal => PaymentDetails::Paypal, }; let authorization_indicator_type = item.request.capture_method.map(|c| AuthorizationIndicator { @@ -350,6 +352,7 @@ impl TryFrom<&types::RefundsRouterData> for CreateRefundRequest { }), api::PaymentMethod::PayLater(_) => PaymentDetails::Klarna, api::PaymentMethod::Wallet => PaymentDetails::Wallet, + api::PaymentMethod::Paypal => PaymentDetails::Paypal, }; merchant_authentication = MerchantAuthentication::try_from(&item.connector_auth_type)?; diff --git a/crates/router/src/connector/checkout/transformers.rs b/crates/router/src/connector/checkout/transformers.rs index 7359599822..a1deedf9ac 100644 --- a/crates/router/src/connector/checkout/transformers.rs +++ b/crates/router/src/connector/checkout/transformers.rs @@ -75,6 +75,7 @@ impl TryFrom<&types::PaymentsRouterData> for PaymentsRequest { api::PaymentMethod::BankTransfer => None, api::PaymentMethod::Wallet => None, api::PaymentMethod::PayLater(_) => None, + api::PaymentMethod::Paypal => None, }; let three_ds = match item.auth_type { diff --git a/crates/router/src/connector/stripe/transformers.rs b/crates/router/src/connector/stripe/transformers.rs index 897953d226..b376adef59 100644 --- a/crates/router/src/connector/stripe/transformers.rs +++ b/crates/router/src/connector/stripe/transformers.rs @@ -123,6 +123,7 @@ pub enum StripePaymentMethodData { Klarna(StripeKlarnaData), Bank, Wallet, + Paypal, } impl TryFrom<&types::PaymentsRouterData> for PaymentIntentRequest { @@ -160,6 +161,7 @@ impl TryFrom<&types::PaymentsRouterData> for PaymentIntentRequest { }) } api::PaymentMethod::Wallet => StripePaymentMethodData::Wallet, + api::PaymentMethod::Paypal => StripePaymentMethodData::Paypal, }; let shipping_address = match item.address.shipping.clone() { Some(mut shipping) => Address { diff --git a/crates/router/src/types/api/payments.rs b/crates/router/src/types/api/payments.rs index d69db67904..bdd79cd641 100644 --- a/crates/router/src/types/api/payments.rs +++ b/crates/router/src/types/api/payments.rs @@ -153,6 +153,8 @@ pub enum PaymentMethod { Wallet, #[serde(rename(deserialize = "pay_later"))] PayLater(PayLaterData), + #[serde(rename(deserialize = "paypal"))] + Paypal, } #[derive(Eq, PartialEq, Clone, Debug, serde::Serialize)] @@ -170,6 +172,7 @@ pub enum PaymentMethodDataResponse { BankTransfer, Wallet, PayLater(PayLaterData), + Paypal, } impl Default for PaymentMethod { @@ -541,6 +544,7 @@ impl From for PaymentMethodDataResponse { PaymentMethodDataResponse::PayLater(pay_later_data) } PaymentMethod::Wallet => PaymentMethodDataResponse::Wallet, + PaymentMethod::Paypal => PaymentMethodDataResponse::Paypal, } } } diff --git a/crates/router/src/types/storage/enums.rs b/crates/router/src/types/storage/enums.rs index d76267ec2d..72fae43632 100644 --- a/crates/router/src/types/storage/enums.rs +++ b/crates/router/src/types/storage/enums.rs @@ -470,6 +470,7 @@ pub enum PaymentMethodType { ConsumerFinance, Wallet, Klarna, + Paypal, } #[derive( diff --git a/migrations/2022-11-25-121143_add_paypal_pmt/down.sql b/migrations/2022-11-25-121143_add_paypal_pmt/down.sql new file mode 100644 index 0000000000..4c5dda8ed3 --- /dev/null +++ b/migrations/2022-11-25-121143_add_paypal_pmt/down.sql @@ -0,0 +1,6 @@ +-- This file should undo anything in `up.sql` +DELETE FROM pg_enum +WHERE enumlabel = 'paypal' +AND enumtypid = ( + SELECT oid FROM pg_type WHERE typname = 'PaymentMethodType' +) diff --git a/migrations/2022-11-25-121143_add_paypal_pmt/up.sql b/migrations/2022-11-25-121143_add_paypal_pmt/up.sql new file mode 100644 index 0000000000..732ed26504 --- /dev/null +++ b/migrations/2022-11-25-121143_add_paypal_pmt/up.sql @@ -0,0 +1,2 @@ +-- Your SQL goes here +ALTER TYPE "PaymentMethodType" ADD VALUE 'paypal' after 'pay_later';