refactor: add payment_issuer and payment_experience in pa (#491)

This commit is contained in:
Narayan Bhat
2023-02-19 19:29:22 +05:30
committed by GitHub
parent c47619b5ea
commit 66563595df
54 changed files with 790 additions and 801 deletions

View File

@ -6,11 +6,11 @@ pub mod diesel_exports {
DbEventClass as EventClass, DbEventObjectType as EventObjectType, DbEventType as EventType,
DbFutureUsage as FutureUsage, DbIntentStatus as IntentStatus,
DbMandateStatus as MandateStatus, DbMandateType as MandateType,
DbMerchantStorageScheme as MerchantStorageScheme, DbPaymentFlow as PaymentFlow,
DbMerchantStorageScheme as MerchantStorageScheme,
DbPaymentMethodIssuerCode as PaymentMethodIssuerCode,
DbPaymentMethodSubType as PaymentMethodSubType, DbPaymentMethodType as PaymentMethodType,
DbProcessTrackerStatus as ProcessTrackerStatus, DbRefundStatus as RefundStatus,
DbRefundType as RefundType, DbRoutingAlgorithm as RoutingAlgorithm,
DbRefundType as RefundType,
};
}
@ -25,9 +25,8 @@ pub mod diesel_exports {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum AttemptStatus {
@ -66,10 +65,9 @@ pub enum AttemptStatus {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum AuthenticationType {
@ -89,10 +87,9 @@ pub enum AuthenticationType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum CaptureMethod {
@ -113,10 +110,9 @@ pub enum CaptureMethod {
strum::EnumString,
serde::Deserialize,
serde::Serialize,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[strum(serialize_all = "snake_case")]
#[serde(rename_all = "snake_case")]
pub enum ConnectorType {
@ -149,10 +145,9 @@ pub enum ConnectorType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
pub enum Currency {
AED,
ALL,
@ -270,9 +265,8 @@ pub enum Currency {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum EventClass {
@ -289,9 +283,8 @@ pub enum EventClass {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum EventObjectType {
@ -308,10 +301,9 @@ pub enum EventObjectType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum EventType {
@ -329,10 +321,9 @@ pub enum EventType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum IntentStatus {
@ -358,10 +349,9 @@ pub enum IntentStatus {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum FutureUsage {
@ -381,9 +371,8 @@ pub enum FutureUsage {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum MerchantStorageScheme {
@ -392,30 +381,6 @@ pub enum MerchantStorageScheme {
RedisKv,
}
#[derive(
Clone,
Copy,
Debug,
Eq,
PartialEq,
strum::Display,
strum::EnumString,
serde::Serialize,
serde::Deserialize,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[strum(serialize_all = "snake_case")]
pub enum PaymentFlow {
Vsc,
Emi,
Otp,
UpiIntent,
UpiCollect,
UpiScanAndPay,
Sdk,
}
#[derive(
Clone,
Copy,
@ -427,10 +392,9 @@ pub enum PaymentFlow {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[strum(serialize_all = "snake_case")]
#[serde(rename_all = "snake_case")]
pub enum PaymentMethodIssuerCode {
@ -457,10 +421,9 @@ pub enum PaymentMethodIssuerCode {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum PaymentMethodSubType {
@ -484,10 +447,9 @@ pub enum PaymentMethodSubType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum PaymentMethodType {
@ -517,9 +479,8 @@ pub enum PaymentMethodType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "lowercase")]
#[strum(serialize_all = "lowercase")]
pub enum WalletIssuer {
@ -537,9 +498,8 @@ pub enum WalletIssuer {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum ProcessTrackerStatus {
@ -566,10 +526,9 @@ pub enum ProcessTrackerStatus {
serde::Deserialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[strum(serialize_all = "snake_case")]
pub enum RefundStatus {
Failure,
@ -591,9 +550,8 @@ pub enum RefundStatus {
serde::Deserialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[strum(serialize_all = "snake_case")]
pub enum RefundType {
InstantRefund,
@ -602,29 +560,6 @@ pub enum RefundType {
RetryRefund,
}
#[derive(
Clone,
Copy,
Debug,
Eq,
PartialEq,
serde::Deserialize,
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
#[router_derive::diesel_enum]
pub enum RoutingAlgorithm {
RoundRobin,
MaxConversion,
MinCost,
Custom,
}
// Mandate
#[derive(
Clone,
@ -637,9 +572,8 @@ pub enum RoutingAlgorithm {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum MandateType {
@ -659,10 +593,9 @@ pub enum MandateType {
serde::Serialize,
strum::Display,
strum::EnumString,
router_derive::DieselEnum,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum]
#[router_derive::diesel_enum(storage_type = "pg_enum")]
#[serde(rename_all = "snake_case")]
#[strum(serialize_all = "snake_case")]
pub enum MandateStatus {
@ -672,3 +605,62 @@ pub enum MandateStatus {
Pending,
Revoked,
}
#[derive(
Clone,
Copy,
Debug,
Eq,
Hash,
PartialEq,
serde::Deserialize,
serde::Serialize,
strum::Display,
strum::EnumString,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum(storage_type = "text")]
#[strum(serialize_all = "snake_case")]
#[serde(rename_all = "snake_case")]
pub enum PaymentIssuer {
Klarna,
Affirm,
AfterpayClearpay,
AmericanExpress,
BankOfAmerica,
Barclays,
CapitalOne,
Chase,
Citi,
Discover,
NavyFederalCreditUnion,
PentagonFederalCreditUnion,
SynchronyBank,
WellsFargo,
}
#[derive(
Eq,
PartialEq,
Hash,
Clone,
Debug,
serde::Serialize,
serde::Deserialize,
Default,
strum::Display,
strum::EnumString,
frunk::LabelledGeneric,
)]
#[router_derive::diesel_enum(storage_type = "text")]
#[strum(serialize_all = "snake_case")]
#[serde(rename_all = "snake_case")]
pub enum PaymentExperience {
#[default]
RedirectToUrl,
InvokeSdkClient,
DisplayQrCode,
OneClick,
LinkWallet,
InvokePaymentApp,
}

View File

@ -22,8 +22,6 @@ pub struct PaymentAttempt {
pub tax_amount: Option<i64>,
pub payment_method_id: Option<String>,
pub payment_method: Option<storage_enums::PaymentMethodType>,
pub payment_flow: Option<storage_enums::PaymentFlow>,
pub redirect: Option<bool>,
pub connector_transaction_id: Option<String>,
pub capture_method: Option<storage_enums::CaptureMethod>,
pub capture_on: Option<PrimitiveDateTime>,
@ -39,6 +37,8 @@ pub struct PaymentAttempt {
pub error_code: Option<String>,
pub payment_token: Option<String>,
pub connector_metadata: Option<serde_json::Value>,
pub payment_issuer: Option<storage_enums::PaymentIssuer>,
pub payment_experience: Option<storage_enums::PaymentExperience>,
}
#[derive(
@ -61,8 +61,6 @@ pub struct PaymentAttemptNew {
pub tax_amount: Option<i64>,
pub payment_method_id: Option<String>,
pub payment_method: Option<storage_enums::PaymentMethodType>,
pub payment_flow: Option<storage_enums::PaymentFlow>,
pub redirect: Option<bool>,
pub connector_transaction_id: Option<String>,
pub capture_method: Option<storage_enums::CaptureMethod>,
pub capture_on: Option<PrimitiveDateTime>,
@ -78,6 +76,8 @@ pub struct PaymentAttemptNew {
pub payment_token: Option<String>,
pub error_code: Option<String>,
pub connector_metadata: Option<serde_json::Value>,
pub payment_issuer: Option<storage_enums::PaymentIssuer>,
pub payment_experience: Option<storage_enums::PaymentExperience>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
@ -117,7 +117,6 @@ pub enum PaymentAttemptUpdate {
connector_transaction_id: Option<String>,
authentication_type: Option<storage_enums::AuthenticationType>,
payment_method_id: Option<Option<String>>,
redirect: Option<bool>,
mandate_id: Option<String>,
connector_metadata: Option<serde_json::Value>,
},
@ -146,7 +145,6 @@ pub struct PaymentAttemptUpdateInternal {
payment_method_id: Option<Option<String>>,
cancellation_reason: Option<String>,
modified_at: Option<PrimitiveDateTime>,
redirect: Option<bool>,
mandate_id: Option<String>,
browser_info: Option<serde_json::Value>,
payment_token: Option<String>,
@ -243,7 +241,6 @@ impl From<PaymentAttemptUpdate> for PaymentAttemptUpdateInternal {
connector_transaction_id,
authentication_type,
payment_method_id,
redirect,
mandate_id,
connector_metadata,
} => Self {
@ -253,7 +250,6 @@ impl From<PaymentAttemptUpdate> for PaymentAttemptUpdateInternal {
authentication_type,
payment_method_id,
modified_at: Some(common_utils::date_time::now()),
redirect,
mandate_id,
connector_metadata,
..Default::default()

View File

@ -219,8 +219,6 @@ diesel::table! {
tax_amount -> Nullable<Int8>,
payment_method_id -> Nullable<Varchar>,
payment_method -> Nullable<PaymentMethodType>,
payment_flow -> Nullable<PaymentFlow>,
redirect -> Nullable<Bool>,
connector_transaction_id -> Nullable<Varchar>,
capture_method -> Nullable<CaptureMethod>,
capture_on -> Nullable<Timestamp>,
@ -236,6 +234,8 @@ diesel::table! {
error_code -> Nullable<Varchar>,
payment_token -> Nullable<Varchar>,
connector_metadata -> Nullable<Jsonb>,
payment_issuer -> Nullable<Varchar>,
payment_experience -> Nullable<Varchar>,
}
}