@@ -19,11 +19,13 @@ class HeadlinesSearchBloc
1919 required DataRepository <Headline > headlinesRepository,
2020 required DataRepository <Topic > topicRepository,
2121 required DataRepository <Source > sourceRepository,
22+ required DataRepository <Country > countryRepository,
2223 required AppBloc appBloc,
2324 required FeedDecoratorService feedDecoratorService,
2425 }) : _headlinesRepository = headlinesRepository,
2526 _topicRepository = topicRepository,
2627 _sourceRepository = sourceRepository,
28+ _countryRepository = countryRepository,
2729 _appBloc = appBloc,
2830 _feedDecoratorService = feedDecoratorService,
2931 super (const HeadlinesSearchInitial ()) {
@@ -37,6 +39,7 @@ class HeadlinesSearchBloc
3739 final DataRepository <Headline > _headlinesRepository;
3840 final DataRepository <Topic > _topicRepository;
3941 final DataRepository <Source > _sourceRepository;
42+ final DataRepository <Country > _countryRepository;
4043 final AppBloc _appBloc;
4144 final FeedDecoratorService _feedDecoratorService;
4245 static const _limit = 10 ;
@@ -170,12 +173,19 @@ class HeadlinesSearchBloc
170173 cursor: response.cursor,
171174 ),
172175 );
173- // Added break
174- default :
175- response = const PaginatedResponse (
176- items: [],
177- cursor: null ,
178- hasMore: false ,
176+ case ContentType .country:
177+ response = await _countryRepository.readAll (
178+ filter: {'q' : searchTerm, 'hasActiveHeadlines' : true },
179+ pagination: const PaginationOptions (limit: _limit),
180+ sort: [const SortOption ('name' , SortOrder .asc)],
181+ );
182+ emit (
183+ successState.copyWith (
184+ items: List .of (successState.items)
185+ ..addAll (response.items.cast <FeedItem >()),
186+ hasMore: response.hasMore,
187+ cursor: response.cursor,
188+ ),
179189 );
180190 }
181191 } on HttpException catch (e) {
@@ -249,14 +259,13 @@ class HeadlinesSearchBloc
249259 sort: [const SortOption ('name' , SortOrder .asc)],
250260 );
251261 processedItems = rawResponse.items.cast <FeedItem >();
252- default :
253- // Handle unexpected content types if necessary
254- rawResponse = const PaginatedResponse (
255- items: [],
256- cursor: null ,
257- hasMore: false ,
262+ case ContentType .country:
263+ rawResponse = await _countryRepository.readAll (
264+ filter: {'q' : searchTerm, 'hasActiveHeadlines' : true },
265+ pagination: const PaginationOptions (limit: _limit),
266+ sort: [const SortOption ('name' , SortOrder .asc)],
258267 );
259- processedItems = [] ;
268+ processedItems = rawResponse.items. cast < FeedItem >() ;
260269 }
261270 emit (
262271 HeadlinesSearchSuccess (
0 commit comments