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/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

View File

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

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

View File

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

View File

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

View File

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

View File

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