MDP_Yashin/lib/repositories/got_repository.dart

31 lines
1019 B
Dart
Raw Normal View History

2024-11-13 14:55:40 +04:00
import 'dart:developer';
import 'package:mdp/data/dtos/characters_dto.dart';
import 'package:mdp/data/mappers/characters_mapper.dart';
import 'package:mdp/models/card.dart';
import 'package:mdp/repositories/api_interface.dart';
import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
class GotRepository extends ApiInterface {
static final Dio _dio = Dio()
..interceptors.add(PrettyDioLogger(
requestHeader: true,
requestBody: true
));
static const String _baseURL = 'https://thronesapi.com';
@override
Future<List<CardData>?> loadData() async {
try {
const String url = '$_baseURL/api/v2/Characters';
Response<dynamic> response = await _dio.get<List<dynamic>>(url);
final CharactersDto dto = CharactersDto.fromJson(response.data);
final List<CardData>? data = dto.array?.map((e) => e.toDomain()).toList();
return data;
} on DioException catch (e) {
log(e.stackTrace.toString());
return null;
}
}
}