Skip to content

Commit 6efac46

Browse files
committed
feat(rate-limiting): implement rate limiting service
- Add RateLimitService interface - Implement MongoDbRateLimitService - Integrate RateLimitService into AppDependencies - Update dependency initialization and disposal
1 parent 484d7db commit 6efac46

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lib/src/config/app_dependencies.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ import 'package:flutter_news_app_api_server_full_source_code/src/services/databa
1414
import 'package:flutter_news_app_api_server_full_source_code/src/services/default_user_preference_limit_service.dart';
1515
import 'package:flutter_news_app_api_server_full_source_code/src/services/jwt_auth_token_service.dart';
1616
import 'package:flutter_news_app_api_server_full_source_code/src/services/mongodb_token_blacklist_service.dart';
17+
import 'package:flutter_news_app_api_server_full_source_code/src/services/mongodb_rate_limit_service.dart';
1718
import 'package:flutter_news_app_api_server_full_source_code/src/services/mongodb_verification_code_storage_service.dart';
19+
import 'package:flutter_news_app_api_server_full_source_code/src/services/rate_limit_service.dart';
1820
import 'package:flutter_news_app_api_server_full_source_code/src/services/token_blacklist_service.dart';
1921
import 'package:flutter_news_app_api_server_full_source_code/src/services/user_preference_limit_service.dart';
2022
import 'package:flutter_news_app_api_server_full_source_code/src/services/verification_code_storage_service.dart';
@@ -65,6 +67,7 @@ class AppDependencies {
6567
late final DashboardSummaryService dashboardSummaryService;
6668
late final PermissionService permissionService;
6769
late final UserPreferenceLimitService userPreferenceLimitService;
70+
late final RateLimitService rateLimitService;
6871

6972
/// Initializes all application dependencies.
7073
///
@@ -222,6 +225,10 @@ class AppDependencies {
222225
permissionService: permissionService,
223226
log: Logger('DefaultUserPreferenceLimitService'),
224227
);
228+
rateLimitService = MongoDbRateLimitService(
229+
connectionManager: _mongoDbConnectionManager,
230+
log: Logger('MongoDbRateLimitService'),
231+
);
225232

226233
_isInitialized = true;
227234
_log.info('Application dependencies initialized successfully.');
@@ -238,6 +245,7 @@ class AppDependencies {
238245
if (!_isInitialized) return;
239246
await _mongoDbConnectionManager.close();
240247
tokenBlacklistService.dispose();
248+
rateLimitService.dispose();
241249
_isInitialized = false;
242250
_log.info('Application dependencies disposed.');
243251
}

0 commit comments

Comments
 (0)