From 186bba04a8d2b22df0ebb9a08fcfe5162a238f5f Mon Sep 17 00:00:00 2001 From: nutcas3 Date: Sun, 26 Apr 2026 02:17:26 +0300 Subject: [PATCH] refactor: Remove duplicate imports and comment out rate limiter implementation in charging-engine - Remove duplicate CreditManager and RatingPlansRepo imports from engine.rs - Add circuit_breaker module to main.rs imports - Comment out rate_limit module in lib.rs - Update rate_limit.rs imports to use GovernorConfig and GovernorLayer directly - Change GovernorConfigBuilder to GovernorConfig::builder() and update config initialization - Update GovernorLayer::new() to take config reference --- apps/charging-engine/src/charging/engine.rs | 2 -- apps/charging-engine/src/lib.rs | 3 ++- apps/charging-engine/src/main.rs | 1 + apps/charging-engine/src/rate_limit.rs | 9 +++++---- apps/charging-engine/src/routes.rs | 6 +++--- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/charging-engine/src/charging/engine.rs b/apps/charging-engine/src/charging/engine.rs index ca9df16..9d56e29 100644 --- a/apps/charging-engine/src/charging/engine.rs +++ b/apps/charging-engine/src/charging/engine.rs @@ -6,8 +6,6 @@ use super::rating_plans_repo::RatingPlansRepo; use super::types::RatingPlan; use crate::circuit_breaker::{CircuitBreaker, CircuitBreakerError}; use crate::errors::{ChargingError, ChargingResult}; -use crate::charging::credit_management::CreditManager; -use crate::charging::rating_plans_repo::RatingPlansRepo; /// ChargingEngine coordinates Redis-backed hot-path state (balances, sessions) /// and Postgres-backed configuration (rating plans) via `RatingPlansRepo`. diff --git a/apps/charging-engine/src/lib.rs b/apps/charging-engine/src/lib.rs index be77c33..2f4717e 100644 --- a/apps/charging-engine/src/lib.rs +++ b/apps/charging-engine/src/lib.rs @@ -1,7 +1,8 @@ pub mod auth; pub mod charging; pub mod circuit_breaker; -pub mod rate_limit; +pub mod errors; +// pub mod rate_limit; pub mod handlers; pub mod routes; pub mod models; diff --git a/apps/charging-engine/src/main.rs b/apps/charging-engine/src/main.rs index c565224..e882a4f 100644 --- a/apps/charging-engine/src/main.rs +++ b/apps/charging-engine/src/main.rs @@ -1,5 +1,6 @@ mod auth; mod charging; +mod circuit_breaker; mod monitoring; mod errors; mod models; diff --git a/apps/charging-engine/src/rate_limit.rs b/apps/charging-engine/src/rate_limit.rs index 19c1cbd..2ad195d 100644 --- a/apps/charging-engine/src/rate_limit.rs +++ b/apps/charging-engine/src/rate_limit.rs @@ -10,11 +10,12 @@ use governor::{ use std::num::NonZeroU32; use std::sync::Arc; use tower_governor::{ - governor::config::GovernorConfigBuilder, + governor::GovernorConfig, key_extractor::SmartIpKeyExtractor, + GovernorLayer, }; -pub fn create_rate_limiter() -> tower_governor::GovernorLayer { +pub fn create_rate_limiter() -> GovernorLayer { let requests_per_second: u32 = std::env::var("RATE_LIMIT_RPS") .ok() .and_then(|s| s.parse().ok()) @@ -27,13 +28,13 @@ pub fn create_rate_limiter() -> tower_governor::GovernorLayer Router { .allow_methods(Any) .allow_headers(Any); - let rate_limiter = create_rate_limiter(); + // let rate_limiter = create_rate_limiter(); Router::new() // Public routes (no auth required - for packet-gateway integration) @@ -54,7 +54,7 @@ pub fn create_router(state: AppState) -> Router { .route("/v1/usage/process", post(process_usage)) .route("/v1/invoice/:imsi/:period", get(generate_invoice)) .layer(cors) - .layer(rate_limiter) + // .layer(rate_limiter) .route_layer(axum::middleware::from_fn_with_state(state.auth_config.clone(), auth_middleware)) .with_state(state) }