refactor(router): remove the payment type column in payment intent (#2462)

This commit is contained in:
ItsMeShashank
2023-10-05 20:56:44 +05:30
committed by GitHub
parent 80f3b1edae
commit 980aa44863
10 changed files with 14 additions and 37 deletions

View File

@ -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)]

View File

@ -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)]

View File

@ -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>,
} }
} }

View File

@ -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) => {

View File

@ -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);

View File

@ -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),
}) })
} }

View File

@ -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)

View File

@ -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,
} }
} }
} }

View File

@ -1,6 +0,0 @@
-- This file should undo anything in `up.sql`
ALTER TABLE payment_intent
DROP COLUMN payment_type;
DROP TYPE "PaymentType";

View File

@ -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";