feat(payment_method): [upi] add new payment method and use in iatapay (#1528)

Co-authored-by: arvindpatel24 <arvind.patel@juspay.in>
This commit is contained in:
Arvind Patel
2023-06-30 19:54:35 +05:30
committed by GitHub
parent 88860b9c0b
commit 2d11bf5b3a
10 changed files with 309 additions and 210 deletions

View File

@ -590,6 +590,7 @@ pub enum PaymentMethodData {
Crypto(CryptoData),
MandatePayment,
Reward(RewardData),
Upi(UpiData),
}
#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
@ -609,6 +610,7 @@ pub enum AdditionalPaymentData {
BankDebit {},
MandatePayment {},
Reward {},
Upi {},
}
impl From<&PaymentMethodData> for AdditionalPaymentData {
@ -637,6 +639,7 @@ impl From<&PaymentMethodData> for AdditionalPaymentData {
PaymentMethodData::BankDebit(_) => Self::BankDebit {},
PaymentMethodData::MandatePayment => Self::MandatePayment {},
PaymentMethodData::Reward(_) => Self::Reward {},
PaymentMethodData::Upi(_) => Self::Upi {},
}
}
}
@ -775,6 +778,13 @@ pub struct CryptoData {
pub pay_currency: Option<String>,
}
#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize, ToSchema)]
#[serde(rename_all = "snake_case")]
pub struct UpiData {
#[schema(value_type = Option<String>, example = "successtest@iata")]
pub vpa_id: Option<Secret<String>>,
}
#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize, ToSchema)]
pub struct SofortBilling {
/// The country associated with the billing
@ -976,6 +986,7 @@ pub enum PaymentMethodDataResponse {
BankDebit(BankDebitData),
MandatePayment,
Reward(RewardData),
Upi(UpiData),
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize, ToSchema)]
@ -1606,6 +1617,7 @@ impl From<PaymentMethodData> for PaymentMethodDataResponse {
PaymentMethodData::BankDebit(bank_debit_data) => Self::BankDebit(bank_debit_data),
PaymentMethodData::MandatePayment => Self::MandatePayment,
PaymentMethodData::Reward(reward_data) => Self::Reward(reward_data),
PaymentMethodData::Upi(upi_data) => Self::Upi(upi_data),
}
}
}