From 6671bff3b11e9548a0085046d2594cad9f2571e2 Mon Sep 17 00:00:00 2001 From: Shankar Singh C <83439957+ShankarSinghC@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:12:53 +0530 Subject: [PATCH] refactor(router): store `ApplepayPaymentMethod` in `payment_method_data` column of `payment_attempt` table (#3940) Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com> --- crates/api_models/src/payments.rs | 12 +++++++++--- crates/router/src/core/payments/helpers.rs | 13 ++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs index 86b09f2fa5..b58ab47b31 100644 --- a/crates/api_models/src/payments.rs +++ b/crates/api_models/src/payments.rs @@ -1359,6 +1359,12 @@ pub struct AdditionalCardInfo { pub card_holder_name: Option>, } +#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize)] +#[serde(rename_all = "snake_case")] +pub enum Wallets { + ApplePay(ApplepayPaymentMethod), +} + #[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "snake_case")] pub enum AdditionalPaymentData { @@ -1366,7 +1372,7 @@ pub enum AdditionalPaymentData { BankRedirect { bank_name: Option, }, - Wallet {}, + Wallet(Option), PayLater {}, BankTransfer {}, Crypto {}, @@ -1939,7 +1945,7 @@ pub enum PaymentMethodDataResponse { #[serde(rename = "card")] Card(Box), BankTransfer {}, - Wallet {}, + Wallet(Option), PayLater {}, Paypal {}, BankRedirect {}, @@ -2868,7 +2874,7 @@ impl From for PaymentMethodDataResponse { match payment_method_data { AdditionalPaymentData::Card(card) => Self::Card(Box::new(CardResponse::from(*card))), AdditionalPaymentData::PayLater {} => Self::PayLater {}, - AdditionalPaymentData::Wallet {} => Self::Wallet {}, + AdditionalPaymentData::Wallet(wallet) => Self::Wallet(wallet), AdditionalPaymentData::BankRedirect { .. } => Self::BankRedirect {}, AdditionalPaymentData::Crypto {} => Self::Crypto {}, AdditionalPaymentData::BankDebit {} => Self::BankDebit {}, diff --git a/crates/router/src/core/payments/helpers.rs b/crates/router/src/core/payments/helpers.rs index eb476cfccd..76893659e0 100644 --- a/crates/router/src/core/payments/helpers.rs +++ b/crates/router/src/core/payments/helpers.rs @@ -3448,9 +3448,16 @@ pub async fn get_additional_payment_data( _ => api_models::payments::AdditionalPaymentData::BankRedirect { bank_name: None }, } } - api_models::payments::PaymentMethodData::Wallet(_) => { - api_models::payments::AdditionalPaymentData::Wallet {} - } + api_models::payments::PaymentMethodData::Wallet(wallet) => match wallet { + api_models::payments::WalletData::ApplePay(apple_pay_wallet_data) => { + api_models::payments::AdditionalPaymentData::Wallet(Some( + api_models::payments::Wallets::ApplePay( + apple_pay_wallet_data.payment_method.to_owned(), + ), + )) + } + _ => api_models::payments::AdditionalPaymentData::Wallet(None), + }, api_models::payments::PaymentMethodData::PayLater(_) => { api_models::payments::AdditionalPaymentData::PayLater {} }