This commit is contained in:
Phuoc Nguyen
2025-11-10 14:21:27 +07:00
parent 2a71c65577
commit 36bdf6613b
33 changed files with 2206 additions and 252 deletions

View File

@@ -5,6 +5,8 @@
library;
import 'package:worker/features/news/data/datasources/news_local_datasource.dart';
import 'package:worker/features/news/data/datasources/news_remote_datasource.dart';
import 'package:worker/features/news/domain/entities/blog_category.dart';
import 'package:worker/features/news/domain/entities/news_article.dart';
import 'package:worker/features/news/domain/repositories/news_repository.dart';
@@ -13,8 +15,30 @@ class NewsRepositoryImpl implements NewsRepository {
/// Local data source
final NewsLocalDataSource localDataSource;
/// Remote data source
final NewsRemoteDataSource remoteDataSource;
/// Constructor
NewsRepositoryImpl({required this.localDataSource});
NewsRepositoryImpl({
required this.localDataSource,
required this.remoteDataSource,
});
@override
Future<List<BlogCategory>> getBlogCategories() async {
try {
// Fetch categories from remote API
final models = await remoteDataSource.getBlogCategories();
// Convert to domain entities
final entities = models.map((model) => model.toEntity()).toList();
return entities;
} catch (e) {
print('[NewsRepository] Error getting blog categories: $e');
rethrow; // Re-throw to let providers handle the error
}
}
@override
Future<List<NewsArticle>> getAllArticles() async {