// ignore: depend_on_referenced_packages import 'package:dio/dio.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:retrofit/retrofit.dart'; import '../model/currency.dart'; import 'app_dio.dart'; part 'backup_currency_api.g.dart'; @RestApi(baseUrl: "https://api.frankfurter.app/") abstract class BackupCurrencyApi { factory BackupCurrencyApi(Dio dio, {String baseUrl}) = _BackupCurrencyApi; static BackupCurrencyApi create() { final dio = AppDio.createDio(); return _BackupCurrencyApi(dio); } @GET("latest?") Future> getCurrencyRate(@Query("from") String currencyFrom, @Query("to") String currencyTo); } @JsonSerializable() class CurrencyResponse implements CurrencyMapper{ String? data; double amount; Map? rates; String? base; CurrencyResponse(this.data, this.amount, this.rates, this.base); factory CurrencyResponse.fromJson(Map json) => _$CurrencyResponseFromJson(json); Map toJson() => _$CurrencyResponseToJson(this); @override Currency convert() { MapEntry? entry = rates?.entries.elementAt(0); return Currency(base, entry?.key, entry?.value); } }