mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 00:49:42 +08:00
refactor(router): remove the payment type column in payment intent (#2462)
This commit is contained in:
@ -105,7 +105,6 @@ pub struct PaymentIntent {
|
|||||||
// Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
|
// Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
|
||||||
pub merchant_decision: Option<String>,
|
pub merchant_decision: Option<String>,
|
||||||
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
||||||
pub payment_type: Option<storage_enums::PaymentType>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
|
#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
|
||||||
@ -145,7 +144,6 @@ pub struct PaymentIntentNew {
|
|||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
pub merchant_decision: Option<String>,
|
pub merchant_decision: Option<String>,
|
||||||
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
||||||
pub payment_type: Option<storage_enums::PaymentType>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
|||||||
@ -47,7 +47,6 @@ pub struct PaymentIntent {
|
|||||||
// Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
|
// Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment
|
||||||
pub merchant_decision: Option<String>,
|
pub merchant_decision: Option<String>,
|
||||||
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
||||||
pub payment_type: Option<storage_enums::PaymentType>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(
|
#[derive(
|
||||||
@ -99,7 +98,6 @@ pub struct PaymentIntentNew {
|
|||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
pub merchant_decision: Option<String>,
|
pub merchant_decision: Option<String>,
|
||||||
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
pub payment_confirm_source: Option<storage_enums::PaymentSource>,
|
||||||
pub payment_type: Option<storage_enums::PaymentType>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
|||||||
@ -609,7 +609,6 @@ diesel::table! {
|
|||||||
#[max_length = 64]
|
#[max_length = 64]
|
||||||
merchant_decision -> Nullable<Varchar>,
|
merchant_decision -> Nullable<Varchar>,
|
||||||
payment_confirm_source -> Nullable<PaymentSource>,
|
payment_confirm_source -> Nullable<PaymentSource>,
|
||||||
payment_type -> Nullable<PaymentType>,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -861,6 +861,19 @@ pub async fn list_payment_methods(
|
|||||||
.await
|
.await
|
||||||
.transpose()?;
|
.transpose()?;
|
||||||
|
|
||||||
|
let payment_type = payment_attempt.as_ref().map(|pa| {
|
||||||
|
let amount = api::Amount::from(pa.amount);
|
||||||
|
let mandate_type = if pa.mandate_id.is_some() {
|
||||||
|
Some(api::MandateTransactionType::RecurringMandateTransaction)
|
||||||
|
} else if pa.mandate_details.is_some() {
|
||||||
|
Some(api::MandateTransactionType::NewMandateTransaction)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
|
||||||
|
helpers::infer_payment_type(&amount, mandate_type.as_ref())
|
||||||
|
});
|
||||||
|
|
||||||
let all_mcas = db
|
let all_mcas = db
|
||||||
.find_merchant_connector_account_by_merchant_id_and_disabled_list(
|
.find_merchant_connector_account_by_merchant_id_and_disabled_list(
|
||||||
&merchant_account.merchant_id,
|
&merchant_account.merchant_id,
|
||||||
@ -1280,8 +1293,8 @@ pub async fn list_payment_methods(
|
|||||||
api::PaymentMethodListResponse {
|
api::PaymentMethodListResponse {
|
||||||
redirect_url: merchant_account.return_url,
|
redirect_url: merchant_account.return_url,
|
||||||
merchant_name: merchant_account.merchant_name,
|
merchant_name: merchant_account.merchant_name,
|
||||||
|
payment_type,
|
||||||
payment_methods: payment_method_responses,
|
payment_methods: payment_method_responses,
|
||||||
payment_type: payment_intent.as_ref().and_then(|pi| pi.payment_type),
|
|
||||||
mandate_payment: payment_attempt.and_then(|inner| inner.mandate_details).map(
|
mandate_payment: payment_attempt.and_then(|inner| inner.mandate_details).map(
|
||||||
|d| match d {
|
|d| match d {
|
||||||
data_models::mandates::MandateDataType::SingleUse(i) => {
|
data_models::mandates::MandateDataType::SingleUse(i) => {
|
||||||
|
|||||||
@ -2398,7 +2398,6 @@ mod tests {
|
|||||||
profile_id: None,
|
profile_id: None,
|
||||||
merchant_decision: None,
|
merchant_decision: None,
|
||||||
payment_confirm_source: None,
|
payment_confirm_source: None,
|
||||||
payment_type: Some(api_enums::PaymentType::Normal),
|
|
||||||
};
|
};
|
||||||
let req_cs = Some("1".to_string());
|
let req_cs = Some("1".to_string());
|
||||||
let merchant_fulfillment_time = Some(900);
|
let merchant_fulfillment_time = Some(900);
|
||||||
@ -2446,7 +2445,6 @@ mod tests {
|
|||||||
profile_id: None,
|
profile_id: None,
|
||||||
merchant_decision: None,
|
merchant_decision: None,
|
||||||
payment_confirm_source: None,
|
payment_confirm_source: None,
|
||||||
payment_type: Some(api_enums::PaymentType::Normal),
|
|
||||||
};
|
};
|
||||||
let req_cs = Some("1".to_string());
|
let req_cs = Some("1".to_string());
|
||||||
let merchant_fulfillment_time = Some(10);
|
let merchant_fulfillment_time = Some(10);
|
||||||
@ -2494,7 +2492,6 @@ mod tests {
|
|||||||
profile_id: None,
|
profile_id: None,
|
||||||
merchant_decision: None,
|
merchant_decision: None,
|
||||||
payment_confirm_source: None,
|
payment_confirm_source: None,
|
||||||
payment_type: Some(api_enums::PaymentType::Normal),
|
|
||||||
};
|
};
|
||||||
let req_cs = Some("1".to_string());
|
let req_cs = Some("1".to_string());
|
||||||
let merchant_fulfillment_time = Some(10);
|
let merchant_fulfillment_time = Some(10);
|
||||||
|
|||||||
@ -77,8 +77,6 @@ impl<F: Send + Clone> GetTracker<F, PaymentData<F>, api::PaymentsRequest> for Pa
|
|||||||
core_utils::validate_and_get_business_profile(db, request.profile_id.as_ref(), merchant_id)
|
core_utils::validate_and_get_business_profile(db, request.profile_id.as_ref(), merchant_id)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let payment_type = helpers::infer_payment_type(&amount, mandate_type.as_ref());
|
|
||||||
|
|
||||||
let (
|
let (
|
||||||
token,
|
token,
|
||||||
payment_method,
|
payment_method,
|
||||||
@ -147,7 +145,6 @@ impl<F: Send + Clone> GetTracker<F, PaymentData<F>, api::PaymentsRequest> for Pa
|
|||||||
request,
|
request,
|
||||||
shipping_address.clone().map(|x| x.address_id),
|
shipping_address.clone().map(|x| x.address_id),
|
||||||
billing_address.clone().map(|x| x.address_id),
|
billing_address.clone().map(|x| x.address_id),
|
||||||
payment_type,
|
|
||||||
attempt_id,
|
attempt_id,
|
||||||
state,
|
state,
|
||||||
)
|
)
|
||||||
@ -606,7 +603,6 @@ impl PaymentCreate {
|
|||||||
request: &api::PaymentsRequest,
|
request: &api::PaymentsRequest,
|
||||||
shipping_address_id: Option<String>,
|
shipping_address_id: Option<String>,
|
||||||
billing_address_id: Option<String>,
|
billing_address_id: Option<String>,
|
||||||
payment_type: enums::PaymentType,
|
|
||||||
active_attempt_id: String,
|
active_attempt_id: String,
|
||||||
state: &AppState,
|
state: &AppState,
|
||||||
) -> RouterResult<storage::PaymentIntentNew> {
|
) -> RouterResult<storage::PaymentIntentNew> {
|
||||||
@ -681,7 +677,6 @@ impl PaymentCreate {
|
|||||||
profile_id: Some(profile_id),
|
profile_id: Some(profile_id),
|
||||||
merchant_decision: None,
|
merchant_decision: None,
|
||||||
payment_confirm_source: None,
|
payment_confirm_source: None,
|
||||||
payment_type: Some(payment_type),
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -106,7 +106,6 @@ impl PaymentIntentInterface for MockDb {
|
|||||||
profile_id: new.profile_id,
|
profile_id: new.profile_id,
|
||||||
merchant_decision: new.merchant_decision,
|
merchant_decision: new.merchant_decision,
|
||||||
payment_confirm_source: new.payment_confirm_source,
|
payment_confirm_source: new.payment_confirm_source,
|
||||||
payment_type: new.payment_type,
|
|
||||||
};
|
};
|
||||||
payment_intents.push(payment_intent.clone());
|
payment_intents.push(payment_intent.clone());
|
||||||
Ok(payment_intent)
|
Ok(payment_intent)
|
||||||
|
|||||||
@ -91,7 +91,6 @@ impl<T: DatabaseStore> PaymentIntentInterface for KVRouterStore<T> {
|
|||||||
profile_id: new.profile_id.clone(),
|
profile_id: new.profile_id.clone(),
|
||||||
merchant_decision: new.merchant_decision.clone(),
|
merchant_decision: new.merchant_decision.clone(),
|
||||||
payment_confirm_source: new.payment_confirm_source,
|
payment_confirm_source: new.payment_confirm_source,
|
||||||
payment_type: new.payment_type,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
match self
|
match self
|
||||||
@ -708,7 +707,6 @@ impl DataModelExt for PaymentIntentNew {
|
|||||||
profile_id: self.profile_id,
|
profile_id: self.profile_id,
|
||||||
merchant_decision: self.merchant_decision,
|
merchant_decision: self.merchant_decision,
|
||||||
payment_confirm_source: self.payment_confirm_source,
|
payment_confirm_source: self.payment_confirm_source,
|
||||||
payment_type: self.payment_type,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,7 +744,6 @@ impl DataModelExt for PaymentIntentNew {
|
|||||||
profile_id: storage_model.profile_id,
|
profile_id: storage_model.profile_id,
|
||||||
merchant_decision: storage_model.merchant_decision,
|
merchant_decision: storage_model.merchant_decision,
|
||||||
payment_confirm_source: storage_model.payment_confirm_source,
|
payment_confirm_source: storage_model.payment_confirm_source,
|
||||||
payment_type: storage_model.payment_type,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -789,7 +786,6 @@ impl DataModelExt for PaymentIntent {
|
|||||||
profile_id: self.profile_id,
|
profile_id: self.profile_id,
|
||||||
merchant_decision: self.merchant_decision,
|
merchant_decision: self.merchant_decision,
|
||||||
payment_confirm_source: self.payment_confirm_source,
|
payment_confirm_source: self.payment_confirm_source,
|
||||||
payment_type: self.payment_type,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -828,7 +824,6 @@ impl DataModelExt for PaymentIntent {
|
|||||||
profile_id: storage_model.profile_id,
|
profile_id: storage_model.profile_id,
|
||||||
merchant_decision: storage_model.merchant_decision,
|
merchant_decision: storage_model.merchant_decision,
|
||||||
payment_confirm_source: storage_model.payment_confirm_source,
|
payment_confirm_source: storage_model.payment_confirm_source,
|
||||||
payment_type: storage_model.payment_type,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
-- This file should undo anything in `up.sql`
|
|
||||||
|
|
||||||
ALTER TABLE payment_intent
|
|
||||||
DROP COLUMN payment_type;
|
|
||||||
|
|
||||||
DROP TYPE "PaymentType";
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
-- Your SQL goes here
|
|
||||||
|
|
||||||
CREATE TYPE "PaymentType" AS ENUM (
|
|
||||||
'normal',
|
|
||||||
'new_mandate',
|
|
||||||
'setup_mandate',
|
|
||||||
'recurring_mandate'
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE payment_intent
|
|
||||||
ADD COLUMN payment_type "PaymentType";
|
|
||||||
Reference in New Issue
Block a user