Files
base_flutter/lib/features/todos/data/datasources/todo_remote_datasource.dart
Phuoc Nguyen 38a33743e6 fix todo
2025-10-03 17:54:39 +07:00

29 lines
950 B
Dart

import 'package:base_flutter/core/utils/utils.dart';
import '../../../../core/network/dio_client.dart';
import '../../../../core/constants/environment_config.dart';
import '../../../../core/services/api_service.dart';
import '../models/todo_model.dart';
abstract class TodoRemoteDataSource {
Future<List<TodoModel>> getTodos();
}
class TodoRemoteDataSourceImpl extends BaseApiService
implements TodoRemoteDataSource {
TodoRemoteDataSourceImpl({required DioClient dioClient}) : super(dioClient);
@override
Future<List<TodoModel>> getTodos() async {
final response = await dioClient.get(EnvironmentConfig.todosEndpoint);
if (response.data is List) {
final List<dynamic> todosJson = response.data as List<dynamic>;
return todosJson
.map((json) => TodoModel.fromJson(json as DataMap))
.toList();
} else {
throw Exception('Expected List but got ${response.data.runtimeType}');
}
}
}