refactor(business_profile): add is_connector_agnostic_mit_enabled in the business profile APIs (#4925)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
Shankar Singh C
2024-06-11 00:24:44 +05:30
committed by GitHub
parent 9c7dcbe1a0
commit 894560f07b
7 changed files with 37 additions and 2 deletions

2
.github/CODEOWNERS vendored
View File

@ -18,7 +18,7 @@ crates/router/src/services/ @juspay/hyperswitch-framework
crates/router/src/db/ @juspay/hyperswitch-framework crates/router/src/db/ @juspay/hyperswitch-framework
crates/router/src/routes/ @juspay/hyperswitch-framework crates/router/src/routes/ @juspay/hyperswitch-framework
migrations/ @juspay/hyperswitch-framework migrations/ @juspay/hyperswitch-framework
openapi/ @juspay/hyperswitch-framework api-reference/ @juspay/hyperswitch-framework
postman/ @juspay/hyperswitch-framework postman/ @juspay/hyperswitch-framework
cypress-tests/ @juspay/hyperswitch-framework @juspay/hyperswitch-qa cypress-tests/ @juspay/hyperswitch-framework @juspay/hyperswitch-qa
Cargo.toml @juspay/hyperswitch-framework Cargo.toml @juspay/hyperswitch-framework

View File

@ -6826,6 +6826,11 @@
"type": "boolean", "type": "boolean",
"description": "A boolean value to indicate if customer shipping details needs to be sent for wallets payments", "description": "A boolean value to indicate if customer shipping details needs to be sent for wallets payments",
"nullable": true "nullable": true
},
"is_connector_agnostic_mit_enabled": {
"type": "boolean",
"description": "Indicates if the MIT (merchant initiated transaction) payments can be made connector\nagnostic, i.e., MITs may be processed through different connector than CIT (customer\ninitiated transaction) based on the routing rules.\nIf set to `false`, MIT will go through the same connector as the CIT.",
"nullable": true
} }
}, },
"additionalProperties": false "additionalProperties": false
@ -6962,6 +6967,11 @@
"type": "boolean", "type": "boolean",
"description": "A boolean value to indicate if customer shipping details needs to be sent for wallets payments", "description": "A boolean value to indicate if customer shipping details needs to be sent for wallets payments",
"nullable": true "nullable": true
},
"is_connector_agnostic_mit_enabled": {
"type": "boolean",
"description": "Indicates if the MIT (merchant initiated transaction) payments can be made connector\nagnostic, i.e., MITs may be processed through different connector than CIT (customer\ninitiated transaction) based on the routing rules.\nIf set to `false`, MIT will go through the same connector as the CIT.",
"nullable": true
} }
} }
}, },

View File

@ -938,6 +938,12 @@ pub struct BusinessProfileCreate {
/// A boolean value to indicate if customer shipping details needs to be sent for wallets payments /// A boolean value to indicate if customer shipping details needs to be sent for wallets payments
pub collect_shipping_details_from_wallet_connector: Option<bool>, pub collect_shipping_details_from_wallet_connector: Option<bool>,
/// Indicates if the MIT (merchant initiated transaction) payments can be made connector
/// agnostic, i.e., MITs may be processed through different connector than CIT (customer
/// initiated transaction) based on the routing rules.
/// If set to `false`, MIT will go through the same connector as the CIT.
pub is_connector_agnostic_mit_enabled: Option<bool>,
} }
#[derive(Clone, Debug, ToSchema, Serialize)] #[derive(Clone, Debug, ToSchema, Serialize)]
@ -1016,6 +1022,12 @@ pub struct BusinessProfileResponse {
/// A boolean value to indicate if customer shipping details needs to be sent for wallets payments /// A boolean value to indicate if customer shipping details needs to be sent for wallets payments
pub collect_shipping_details_from_wallet_connector: Option<bool>, pub collect_shipping_details_from_wallet_connector: Option<bool>,
/// Indicates if the MIT (merchant initiated transaction) payments can be made connector
/// agnostic, i.e., MITs may be processed through different connector than CIT (customer
/// initiated transaction) based on the routing rules.
/// If set to `false`, MIT will go through the same connector as the CIT.
pub is_connector_agnostic_mit_enabled: Option<bool>,
} }
#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)] #[derive(Clone, Debug, Deserialize, ToSchema, Serialize)]
@ -1086,6 +1098,12 @@ pub struct BusinessProfileUpdate {
/// A boolean value to indicate if customer shipping details needs to be sent for wallets payments /// A boolean value to indicate if customer shipping details needs to be sent for wallets payments
pub collect_shipping_details_from_wallet_connector: Option<bool>, pub collect_shipping_details_from_wallet_connector: Option<bool>,
/// Indicates if the MIT (merchant initiated transaction) payments can be made connector
/// agnostic, i.e., MITs may be processed through different connector than CIT (customer
/// initiated transaction) based on the routing rules.
/// If set to `false`, MIT will go through the same connector as the CIT.
pub is_connector_agnostic_mit_enabled: Option<bool>,
} }
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, PartialEq, ToSchema)] #[derive(Clone, Debug, serde::Deserialize, serde::Serialize, PartialEq, ToSchema)]

View File

@ -124,6 +124,7 @@ pub enum BusinessProfileUpdate {
extended_card_info_config: Option<pii::SecretSerdeValue>, extended_card_info_config: Option<pii::SecretSerdeValue>,
use_billing_as_payment_method_billing: Option<bool>, use_billing_as_payment_method_billing: Option<bool>,
collect_shipping_details_from_wallet_connector: Option<bool>, collect_shipping_details_from_wallet_connector: Option<bool>,
is_connector_agnostic_mit_enabled: Option<bool>,
}, },
ExtendedCardInfoUpdate { ExtendedCardInfoUpdate {
is_extended_card_info_enabled: Option<bool>, is_extended_card_info_enabled: Option<bool>,
@ -157,6 +158,7 @@ impl From<BusinessProfileUpdate> for BusinessProfileUpdateInternal {
extended_card_info_config, extended_card_info_config,
use_billing_as_payment_method_billing, use_billing_as_payment_method_billing,
collect_shipping_details_from_wallet_connector, collect_shipping_details_from_wallet_connector,
is_connector_agnostic_mit_enabled,
} => Self { } => Self {
profile_name, profile_name,
modified_at, modified_at,
@ -178,6 +180,7 @@ impl From<BusinessProfileUpdate> for BusinessProfileUpdateInternal {
extended_card_info_config, extended_card_info_config,
use_billing_as_payment_method_billing, use_billing_as_payment_method_billing,
collect_shipping_details_from_wallet_connector, collect_shipping_details_from_wallet_connector,
is_connector_agnostic_mit_enabled,
..Default::default() ..Default::default()
}, },
BusinessProfileUpdate::ExtendedCardInfoUpdate { BusinessProfileUpdate::ExtendedCardInfoUpdate {

View File

@ -442,6 +442,7 @@ pub async fn update_business_profile_cascade(
extended_card_info_config: None, extended_card_info_config: None,
use_billing_as_payment_method_billing: None, use_billing_as_payment_method_billing: None,
collect_shipping_details_from_wallet_connector: None, collect_shipping_details_from_wallet_connector: None,
is_connector_agnostic_mit_enabled: None,
}; };
let update_futures = business_profiles.iter().map(|business_profile| async { let update_futures = business_profiles.iter().map(|business_profile| async {
@ -1728,6 +1729,7 @@ pub async fn update_business_profile(
use_billing_as_payment_method_billing: request.use_billing_as_payment_method_billing, use_billing_as_payment_method_billing: request.use_billing_as_payment_method_billing,
collect_shipping_details_from_wallet_connector: request collect_shipping_details_from_wallet_connector: request
.collect_shipping_details_from_wallet_connector, .collect_shipping_details_from_wallet_connector,
is_connector_agnostic_mit_enabled: request.is_connector_agnostic_mit_enabled,
}; };
let updated_business_profile = db let updated_business_profile = db

View File

@ -277,6 +277,7 @@ pub async fn update_business_profile_active_algorithm_ref(
extended_card_info_config: None, extended_card_info_config: None,
use_billing_as_payment_method_billing: None, use_billing_as_payment_method_billing: None,
collect_shipping_details_from_wallet_connector: None, collect_shipping_details_from_wallet_connector: None,
is_connector_agnostic_mit_enabled: None,
}; };
db.update_business_profile_by_profile_id(current_business_profile, business_profile_update) db.update_business_profile_by_profile_id(current_business_profile, business_profile_update)

View File

@ -87,6 +87,7 @@ impl ForeignTryFrom<storage::business_profile::BusinessProfile> for BusinessProf
.transpose()?, .transpose()?,
collect_shipping_details_from_wallet_connector: item collect_shipping_details_from_wallet_connector: item
.collect_shipping_details_from_wallet_connector, .collect_shipping_details_from_wallet_connector,
is_connector_agnostic_mit_enabled: item.is_connector_agnostic_mit_enabled,
}) })
} }
} }
@ -183,7 +184,7 @@ impl ForeignTryFrom<(domain::MerchantAccount, BusinessProfileCreate)>
.change_context(errors::ApiErrorResponse::InvalidDataValue { .change_context(errors::ApiErrorResponse::InvalidDataValue {
field_name: "authentication_connector_details", field_name: "authentication_connector_details",
})?, })?,
is_connector_agnostic_mit_enabled: None, is_connector_agnostic_mit_enabled: request.is_connector_agnostic_mit_enabled,
is_extended_card_info_enabled: None, is_extended_card_info_enabled: None,
extended_card_info_config: None, extended_card_info_config: None,
use_billing_as_payment_method_billing: request use_billing_as_payment_method_billing: request