Skip to content

Commit 0a978b1

Browse files
committed
refactor(country): inject CountryQueryService via provider
- Remove direct dependency on AppDependencies for CountryQueryService - Inject CountryQueryService using Dart Frog provider - Update country data operation to use injected service for complex queries - Add CountryQueryService to middleware providers
1 parent 450f9a4 commit 0a978b1

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

lib/src/registry/data_operation_registry.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import 'package:core/core.dart';
22
import 'package:dart_frog/dart_frog.dart';
33
import 'package:data_repository/data_repository.dart';
4-
import 'package:flutter_news_app_api_server_full_source_code/src/config/app_dependencies.dart';
54
import 'package:flutter_news_app_api_server_full_source_code/src/middlewares/ownership_check_middleware.dart';
5+
import 'package:flutter_news_app_api_server_full_source_code/src/services/country_query_service.dart';
66
import 'package:flutter_news_app_api_server_full_source_code/src/services/dashboard_summary_service.dart';
77

88
// --- Typedefs for Data Operations ---
@@ -130,25 +130,25 @@ class DataOperationRegistry {
130130
pagination: p,
131131
),
132132
'country': (c, uid, f, s, p) async {
133-
final countryQueryService =
134-
AppDependencies.instance.countryQueryService;
135-
// Check for special filters that require aggregation
133+
// Check for special filters that require aggregation.
136134
if (f != null &&
137135
(f.containsKey('hasActiveSources') ||
138136
f.containsKey('hasActiveHeadlines'))) {
137+
// Use the injected CountryQueryService for complex queries.
138+
final countryQueryService = c.read<CountryQueryService>();
139139
return countryQueryService.getFilteredCountries(
140140
filter: f,
141141
pagination: p,
142142
sort: s,
143143
);
144144
}
145-
// Fallback to standard readAll if no special filters are present
145+
// Fallback to standard readAll if no special filters are present.
146146
return c.read<DataRepository<Country>>().readAll(
147-
userId: uid,
148-
filter: f,
149-
sort: s,
150-
pagination: p,
151-
);
147+
userId: uid,
148+
filter: f,
149+
sort: s,
150+
pagination: p,
151+
);
152152
},
153153
'language': (c, uid, f, s, p) => c
154154
.read<DataRepository<Language>>()

routes/_middleware.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:flutter_news_app_api_server_full_source_code/src/registry/data_o
1010
import 'package:flutter_news_app_api_server_full_source_code/src/registry/model_registry.dart';
1111
import 'package:flutter_news_app_api_server_full_source_code/src/services/auth_service.dart';
1212
import 'package:flutter_news_app_api_server_full_source_code/src/services/auth_token_service.dart';
13+
import 'package:flutter_news_app_api_server_full_source_code/src/services/country_query_service.dart';
1314
import 'package:flutter_news_app_api_server_full_source_code/src/services/dashboard_summary_service.dart';
1415
import 'package:flutter_news_app_api_server_full_source_code/src/services/rate_limit_service.dart';
1516
import 'package:flutter_news_app_api_server_full_source_code/src/services/token_blacklist_service.dart';
@@ -151,6 +152,11 @@ Handler middleware(Handler handler) {
151152
),
152153
)
153154
.use(provider<RateLimitService>((_) => deps.rateLimitService))
155+
.use(
156+
provider<CountryQueryService>(
157+
(_) => deps.countryQueryService,
158+
),
159+
)
154160
.call(context);
155161
};
156162
});

0 commit comments

Comments
 (0)