mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-01 19:42:27 +08:00
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:
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -18,7 +18,7 @@ crates/router/src/services/ @juspay/hyperswitch-framework
|
||||
crates/router/src/db/ @juspay/hyperswitch-framework
|
||||
crates/router/src/routes/ @juspay/hyperswitch-framework
|
||||
migrations/ @juspay/hyperswitch-framework
|
||||
openapi/ @juspay/hyperswitch-framework
|
||||
api-reference/ @juspay/hyperswitch-framework
|
||||
postman/ @juspay/hyperswitch-framework
|
||||
cypress-tests/ @juspay/hyperswitch-framework @juspay/hyperswitch-qa
|
||||
Cargo.toml @juspay/hyperswitch-framework
|
||||
|
||||
@ -6826,6 +6826,11 @@
|
||||
"type": "boolean",
|
||||
"description": "A boolean value to indicate if customer shipping details needs to be sent for wallets payments",
|
||||
"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
|
||||
@ -6962,6 +6967,11 @@
|
||||
"type": "boolean",
|
||||
"description": "A boolean value to indicate if customer shipping details needs to be sent for wallets payments",
|
||||
"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
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -938,6 +938,12 @@ pub struct BusinessProfileCreate {
|
||||
|
||||
/// 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>,
|
||||
|
||||
/// 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)]
|
||||
@ -1016,6 +1022,12 @@ pub struct BusinessProfileResponse {
|
||||
|
||||
/// 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>,
|
||||
|
||||
/// 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)]
|
||||
@ -1086,6 +1098,12 @@ pub struct BusinessProfileUpdate {
|
||||
|
||||
/// 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>,
|
||||
|
||||
/// 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)]
|
||||
|
||||
@ -124,6 +124,7 @@ pub enum BusinessProfileUpdate {
|
||||
extended_card_info_config: Option<pii::SecretSerdeValue>,
|
||||
use_billing_as_payment_method_billing: Option<bool>,
|
||||
collect_shipping_details_from_wallet_connector: Option<bool>,
|
||||
is_connector_agnostic_mit_enabled: Option<bool>,
|
||||
},
|
||||
ExtendedCardInfoUpdate {
|
||||
is_extended_card_info_enabled: Option<bool>,
|
||||
@ -157,6 +158,7 @@ impl From<BusinessProfileUpdate> for BusinessProfileUpdateInternal {
|
||||
extended_card_info_config,
|
||||
use_billing_as_payment_method_billing,
|
||||
collect_shipping_details_from_wallet_connector,
|
||||
is_connector_agnostic_mit_enabled,
|
||||
} => Self {
|
||||
profile_name,
|
||||
modified_at,
|
||||
@ -178,6 +180,7 @@ impl From<BusinessProfileUpdate> for BusinessProfileUpdateInternal {
|
||||
extended_card_info_config,
|
||||
use_billing_as_payment_method_billing,
|
||||
collect_shipping_details_from_wallet_connector,
|
||||
is_connector_agnostic_mit_enabled,
|
||||
..Default::default()
|
||||
},
|
||||
BusinessProfileUpdate::ExtendedCardInfoUpdate {
|
||||
|
||||
@ -442,6 +442,7 @@ pub async fn update_business_profile_cascade(
|
||||
extended_card_info_config: None,
|
||||
use_billing_as_payment_method_billing: None,
|
||||
collect_shipping_details_from_wallet_connector: None,
|
||||
is_connector_agnostic_mit_enabled: None,
|
||||
};
|
||||
|
||||
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,
|
||||
collect_shipping_details_from_wallet_connector: request
|
||||
.collect_shipping_details_from_wallet_connector,
|
||||
is_connector_agnostic_mit_enabled: request.is_connector_agnostic_mit_enabled,
|
||||
};
|
||||
|
||||
let updated_business_profile = db
|
||||
|
||||
@ -277,6 +277,7 @@ pub async fn update_business_profile_active_algorithm_ref(
|
||||
extended_card_info_config: None,
|
||||
use_billing_as_payment_method_billing: 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)
|
||||
|
||||
@ -87,6 +87,7 @@ impl ForeignTryFrom<storage::business_profile::BusinessProfile> for BusinessProf
|
||||
.transpose()?,
|
||||
collect_shipping_details_from_wallet_connector: item
|
||||
.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 {
|
||||
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,
|
||||
extended_card_info_config: None,
|
||||
use_billing_as_payment_method_billing: request
|
||||
|
||||
Reference in New Issue
Block a user