31 lines
1019 B
Dart
31 lines
1019 B
Dart
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|