mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
fix(v2): Trait gating in v2 (#7223)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -2,9 +2,11 @@
|
|||||||
//!
|
//!
|
||||||
//! Functions that are used to perform the retrieval of merchant's
|
//! Functions that are used to perform the retrieval of merchant's
|
||||||
//! routing dict, configs, defaults
|
//! routing dict, configs, defaults
|
||||||
|
use std::fmt::Debug;
|
||||||
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::{fmt::Debug, sync::Arc};
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
use api_models::routing as routing_types;
|
use api_models::routing as routing_types;
|
||||||
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
@ -13,7 +15,7 @@ use common_utils::{ext_traits::Encode, id_type, types::keymanager::KeyManagerSta
|
|||||||
use diesel_models::configs;
|
use diesel_models::configs;
|
||||||
#[cfg(all(feature = "v1", feature = "dynamic_routing"))]
|
#[cfg(all(feature = "v1", feature = "dynamic_routing"))]
|
||||||
use diesel_models::dynamic_routing_stats::DynamicRoutingStatsNew;
|
use diesel_models::dynamic_routing_stats::DynamicRoutingStatsNew;
|
||||||
#[cfg(feature = "v1")]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use diesel_models::routing_algorithm;
|
use diesel_models::routing_algorithm;
|
||||||
use error_stack::ResultExt;
|
use error_stack::ResultExt;
|
||||||
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
@ -21,14 +23,16 @@ use external_services::grpc_client::dynamic_routing::{
|
|||||||
contract_routing_client::ContractBasedDynamicRouting,
|
contract_routing_client::ContractBasedDynamicRouting,
|
||||||
success_rate_client::SuccessBasedDynamicRouting,
|
success_rate_client::SuccessBasedDynamicRouting,
|
||||||
};
|
};
|
||||||
#[cfg(feature = "v1")]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use hyperswitch_domain_models::api::ApplicationResponse;
|
use hyperswitch_domain_models::api::ApplicationResponse;
|
||||||
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use router_env::logger;
|
use router_env::logger;
|
||||||
#[cfg(any(feature = "dynamic_routing", feature = "v1"))]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use router_env::{instrument, tracing};
|
use router_env::{instrument, tracing};
|
||||||
use rustc_hash::FxHashSet;
|
use rustc_hash::FxHashSet;
|
||||||
use storage_impl::redis::cache::{self, Cacheable};
|
use storage_impl::redis::cache;
|
||||||
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
|
use storage_impl::redis::cache::Cacheable;
|
||||||
|
|
||||||
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use crate::db::errors::StorageErrorExt;
|
use crate::db::errors::StorageErrorExt;
|
||||||
@ -41,7 +45,7 @@ use crate::{
|
|||||||
types::{domain, storage},
|
types::{domain, storage},
|
||||||
utils::StringExt,
|
utils::StringExt,
|
||||||
};
|
};
|
||||||
#[cfg(feature = "v1")]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
use crate::{core::metrics as core_metrics, types::transformers::ForeignInto};
|
use crate::{core::metrics as core_metrics, types::transformers::ForeignInto};
|
||||||
pub const SUCCESS_BASED_DYNAMIC_ROUTING_ALGORITHM: &str =
|
pub const SUCCESS_BASED_DYNAMIC_ROUTING_ALGORITHM: &str =
|
||||||
"Success rate based dynamic routing algorithm";
|
"Success rate based dynamic routing algorithm";
|
||||||
@ -566,6 +570,7 @@ pub fn get_default_config_key(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
pub trait DynamicRoutingCache {
|
pub trait DynamicRoutingCache {
|
||||||
async fn get_cached_dynamic_routing_config_for_profile(
|
async fn get_cached_dynamic_routing_config_for_profile(
|
||||||
@ -584,6 +589,7 @@ pub trait DynamicRoutingCache {
|
|||||||
Fut: futures::Future<Output = errors::CustomResult<T, errors::StorageError>> + Send;
|
Fut: futures::Future<Output = errors::CustomResult<T, errors::StorageError>> + Send;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl DynamicRoutingCache for routing_types::SuccessBasedRoutingConfig {
|
impl DynamicRoutingCache for routing_types::SuccessBasedRoutingConfig {
|
||||||
async fn get_cached_dynamic_routing_config_for_profile(
|
async fn get_cached_dynamic_routing_config_for_profile(
|
||||||
@ -620,6 +626,7 @@ impl DynamicRoutingCache for routing_types::SuccessBasedRoutingConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
impl DynamicRoutingCache for routing_types::ContractBasedRoutingConfig {
|
impl DynamicRoutingCache for routing_types::ContractBasedRoutingConfig {
|
||||||
async fn get_cached_dynamic_routing_config_for_profile(
|
async fn get_cached_dynamic_routing_config_for_profile(
|
||||||
@ -1502,7 +1509,7 @@ where
|
|||||||
Ok(ApplicationResponse::Json(updated_routing_record))
|
Ok(ApplicationResponse::Json(updated_routing_record))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "v1")]
|
#[cfg(all(feature = "dynamic_routing", feature = "v1"))]
|
||||||
#[instrument(skip_all)]
|
#[instrument(skip_all)]
|
||||||
pub async fn default_specific_dynamic_routing_setup(
|
pub async fn default_specific_dynamic_routing_setup(
|
||||||
state: &SessionState,
|
state: &SessionState,
|
||||||
|
|||||||
Reference in New Issue
Block a user