mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
feat(router): Add revenue recovery retry algorithm type and data columns to business_profile table (#7772)
Co-authored-by: Aniket Burman <aniket.burman@Aniket-Burman-JDXHW2PH34.local> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com> Co-authored-by: Amisha Prabhat <55580080+Aprabhat19@users.noreply.github.com>
This commit is contained in:
@ -2913,6 +2913,17 @@ pub async fn create_connector(
|
||||
.validate_and_get_business_profile(&merchant_account, store, key_manager_state, &key_store)
|
||||
.await?;
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
if req.connector_type == common_enums::ConnectorType::BillingProcessor {
|
||||
update_revenue_recovery_algorithm_under_profile(
|
||||
business_profile.clone(),
|
||||
store,
|
||||
key_manager_state,
|
||||
&key_store,
|
||||
common_enums::RevenueRecoveryAlgorithmType::Monitoring,
|
||||
)
|
||||
.await?;
|
||||
}
|
||||
core_utils::validate_profile_id_from_auth_layer(auth_profile_id, &business_profile)?;
|
||||
|
||||
let pm_auth_config_validation = PMAuthConfigValidation {
|
||||
@ -3941,6 +3952,8 @@ impl ProfileCreateBridge for api::ProfileCreate {
|
||||
is_clear_pan_retries_enabled: self.is_clear_pan_retries_enabled.unwrap_or_default(),
|
||||
is_debit_routing_enabled: self.is_debit_routing_enabled.unwrap_or_default(),
|
||||
merchant_business_country: self.merchant_business_country,
|
||||
revenue_recovery_retry_algorithm_type: None,
|
||||
revenue_recovery_retry_algorithm_data: None,
|
||||
}))
|
||||
}
|
||||
}
|
||||
@ -4546,6 +4559,33 @@ impl ProfileWrapper {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
#[cfg(feature = "v2")]
|
||||
pub async fn update_revenue_recovery_algorithm_under_profile(
|
||||
profile: domain::Profile,
|
||||
db: &dyn StorageInterface,
|
||||
key_manager_state: &KeyManagerState,
|
||||
merchant_key_store: &domain::MerchantKeyStore,
|
||||
revenue_recovery_retry_algorithm_type: common_enums::RevenueRecoveryAlgorithmType,
|
||||
) -> RouterResult<()> {
|
||||
let recovery_algorithm_data = diesel_models::business_profile::RevenueRecoveryAlgorithmData {
|
||||
monitoring_configured_timestamp: date_time::now(),
|
||||
};
|
||||
let profile_update = domain::ProfileUpdate::RevenueRecoveryAlgorithmUpdate {
|
||||
revenue_recovery_retry_algorithm_type,
|
||||
revenue_recovery_retry_algorithm_data: Some(recovery_algorithm_data),
|
||||
};
|
||||
|
||||
db.update_profile_by_profile_id(
|
||||
key_manager_state,
|
||||
merchant_key_store,
|
||||
profile,
|
||||
profile_update,
|
||||
)
|
||||
.await
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable("Failed to update revenue recovery retry algorithm in business profile")?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn extended_card_info_toggle(
|
||||
state: SessionState,
|
||||
|
||||
Reference in New Issue
Block a user