fix(router): make request_incremental_authorization optional in payment_intent (#3086)

This commit is contained in:
Sai Harsha Vardhan
2023-12-11 19:07:25 +05:30
committed by GitHub
parent 129b1e55bd
commit f7da59d06a
9 changed files with 26 additions and 15 deletions

View File

@ -50,7 +50,7 @@ pub struct PaymentIntent {
pub updated_by: String, pub updated_by: String,
pub surcharge_applicable: Option<bool>, pub surcharge_applicable: Option<bool>,
pub request_incremental_authorization: storage_enums::RequestIncrementalAuthorization, pub request_incremental_authorization: Option<storage_enums::RequestIncrementalAuthorization>,
pub incremental_authorization_allowed: Option<bool>, pub incremental_authorization_allowed: Option<bool>,
pub authorization_count: Option<i32>, pub authorization_count: Option<i32>,
} }

View File

@ -107,7 +107,7 @@ pub struct PaymentIntentNew {
pub updated_by: String, pub updated_by: String,
pub surcharge_applicable: Option<bool>, pub surcharge_applicable: Option<bool>,
pub request_incremental_authorization: storage_enums::RequestIncrementalAuthorization, pub request_incremental_authorization: Option<storage_enums::RequestIncrementalAuthorization>,
pub incremental_authorization_allowed: Option<bool>, pub incremental_authorization_allowed: Option<bool>,
pub authorization_count: Option<i32>, pub authorization_count: Option<i32>,
} }

View File

@ -52,7 +52,7 @@ pub struct PaymentIntent {
pub updated_by: String, pub updated_by: String,
pub surcharge_applicable: Option<bool>, pub surcharge_applicable: Option<bool>,
pub request_incremental_authorization: RequestIncrementalAuthorization, pub request_incremental_authorization: Option<RequestIncrementalAuthorization>,
pub incremental_authorization_allowed: Option<bool>, pub incremental_authorization_allowed: Option<bool>,
pub authorization_count: Option<i32>, pub authorization_count: Option<i32>,
} }
@ -109,7 +109,7 @@ pub struct PaymentIntentNew {
pub payment_confirm_source: Option<storage_enums::PaymentSource>, pub payment_confirm_source: Option<storage_enums::PaymentSource>,
pub updated_by: String, pub updated_by: String,
pub surcharge_applicable: Option<bool>, pub surcharge_applicable: Option<bool>,
pub request_incremental_authorization: RequestIncrementalAuthorization, pub request_incremental_authorization: Option<RequestIncrementalAuthorization>,
pub incremental_authorization_allowed: Option<bool>, pub incremental_authorization_allowed: Option<bool>,
pub authorization_count: Option<i32>, pub authorization_count: Option<i32>,
} }

View File

@ -703,7 +703,7 @@ diesel::table! {
#[max_length = 32] #[max_length = 32]
updated_by -> Varchar, updated_by -> Varchar,
surcharge_applicable -> Nullable<Bool>, surcharge_applicable -> Nullable<Bool>,
request_incremental_authorization -> RequestIncrementalAuthorization, request_incremental_authorization -> Nullable<RequestIncrementalAuthorization>,
incremental_authorization_allowed -> Nullable<Bool>, incremental_authorization_allowed -> Nullable<Bool>,
authorization_count -> Nullable<Int4>, authorization_count -> Nullable<Int4>,
} }

View File

@ -2661,8 +2661,9 @@ mod tests {
payment_confirm_source: None, payment_confirm_source: None,
surcharge_applicable: None, surcharge_applicable: None,
updated_by: storage_enums::MerchantStorageScheme::PostgresOnly.to_string(), updated_by: storage_enums::MerchantStorageScheme::PostgresOnly.to_string(),
request_incremental_authorization: request_incremental_authorization: Some(
common_enums::RequestIncrementalAuthorization::default(), common_enums::RequestIncrementalAuthorization::default(),
),
incremental_authorization_allowed: None, incremental_authorization_allowed: None,
authorization_count: None, authorization_count: None,
}; };
@ -2715,8 +2716,9 @@ mod tests {
payment_confirm_source: None, payment_confirm_source: None,
surcharge_applicable: None, surcharge_applicable: None,
updated_by: storage_enums::MerchantStorageScheme::PostgresOnly.to_string(), updated_by: storage_enums::MerchantStorageScheme::PostgresOnly.to_string(),
request_incremental_authorization: request_incremental_authorization: Some(
common_enums::RequestIncrementalAuthorization::default(), common_enums::RequestIncrementalAuthorization::default(),
),
incremental_authorization_allowed: None, incremental_authorization_allowed: None,
authorization_count: None, authorization_count: None,
}; };
@ -2769,8 +2771,9 @@ mod tests {
payment_confirm_source: None, payment_confirm_source: None,
surcharge_applicable: None, surcharge_applicable: None,
updated_by: storage_enums::MerchantStorageScheme::PostgresOnly.to_string(), updated_by: storage_enums::MerchantStorageScheme::PostgresOnly.to_string(),
request_incremental_authorization: request_incremental_authorization: Some(
common_enums::RequestIncrementalAuthorization::default(), common_enums::RequestIncrementalAuthorization::default(),
),
incremental_authorization_allowed: None, incremental_authorization_allowed: None,
authorization_count: None, authorization_count: None,
}; };

View File

@ -1062,7 +1062,8 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::PaymentsAuthoriz
payment_data payment_data
.payment_intent .payment_intent
.request_incremental_authorization, .request_incremental_authorization,
RequestIncrementalAuthorization::True | RequestIncrementalAuthorization::Default Some(RequestIncrementalAuthorization::True)
| Some(RequestIncrementalAuthorization::Default)
), ),
}) })
} }
@ -1350,7 +1351,8 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::SetupMandateRequ
payment_data payment_data
.payment_intent .payment_intent
.request_incremental_authorization, .request_incremental_authorization,
RequestIncrementalAuthorization::True | RequestIncrementalAuthorization::Default Some(RequestIncrementalAuthorization::True)
| Some(RequestIncrementalAuthorization::Default)
), ),
}) })
} }

View File

@ -1066,8 +1066,8 @@ pub fn get_flow_name<F>() -> RouterResult<String> {
pub fn get_request_incremental_authorization_value( pub fn get_request_incremental_authorization_value(
request_incremental_authorization: Option<bool>, request_incremental_authorization: Option<bool>,
capture_method: Option<common_enums::CaptureMethod>, capture_method: Option<common_enums::CaptureMethod>,
) -> RouterResult<RequestIncrementalAuthorization> { ) -> RouterResult<Option<RequestIncrementalAuthorization>> {
request_incremental_authorization Some(request_incremental_authorization
.map(|request_incremental_authorization| { .map(|request_incremental_authorization| {
if request_incremental_authorization { if request_incremental_authorization {
if capture_method == Some(common_enums::CaptureMethod::Automatic) { if capture_method == Some(common_enums::CaptureMethod::Automatic) {
@ -1078,14 +1078,16 @@ pub fn get_request_incremental_authorization_value(
Ok(RequestIncrementalAuthorization::False) Ok(RequestIncrementalAuthorization::False)
} }
}) })
.unwrap_or(Ok(RequestIncrementalAuthorization::default())) .unwrap_or(Ok(RequestIncrementalAuthorization::default()))).transpose()
} }
pub fn get_incremental_authorization_allowed_value( pub fn get_incremental_authorization_allowed_value(
incremental_authorization_allowed: Option<bool>, incremental_authorization_allowed: Option<bool>,
request_incremental_authorization: RequestIncrementalAuthorization, request_incremental_authorization: Option<RequestIncrementalAuthorization>,
) -> Option<bool> { ) -> Option<bool> {
if request_incremental_authorization == common_enums::RequestIncrementalAuthorization::False { if request_incremental_authorization
== Some(common_enums::RequestIncrementalAuthorization::False)
{
Some(false) Some(false)
} else { } else {
incremental_authorization_allowed incremental_authorization_allowed

View File

@ -0,0 +1,2 @@
-- This file should undo anything in `up.sql`
ALTER TABLE payment_intent ALTER COLUMN request_incremental_authorization SET NOT NULL;

View File

@ -0,0 +1,2 @@
-- Your SQL goes here
ALTER TABLE payment_intent ALTER COLUMN request_incremental_authorization DROP NOT NULL;