mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 19:46:48 +08:00
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com> Co-authored-by: Sandeep Kumar <83278309+tsdk02@users.noreply.github.com>
25 lines
811 B
Rust
25 lines
811 B
Rust
use analytics::errors::AnalyticsError;
|
|
use api_models::analytics::AnalyticsRequest;
|
|
use common_utils::errors::CustomResult;
|
|
use currency_conversion::types::ExchangeRates;
|
|
use router_env::logger;
|
|
|
|
use crate::core::currency::get_forex_exchange_rates;
|
|
|
|
pub async fn request_validator(
|
|
req_type: AnalyticsRequest,
|
|
state: &crate::routes::SessionState,
|
|
) -> CustomResult<Option<ExchangeRates>, AnalyticsError> {
|
|
let forex_enabled = state.conf.analytics.get_inner().get_forex_enabled();
|
|
let require_forex_functionality = req_type.requires_forex_functionality();
|
|
|
|
let ex_rates = if forex_enabled && require_forex_functionality {
|
|
logger::info!("Fetching forex exchange rates");
|
|
Some(get_forex_exchange_rates(state.clone()).await?)
|
|
} else {
|
|
None
|
|
};
|
|
|
|
Ok(ex_rates)
|
|
}
|