Files
easy_cc_flutter/lib/data/network/safe_api_call.dart
hmalik144 afaa93fb41 - Replaced API
- Updated available currencies
 - Updated unit tests
 - Fix for failure handling
 - Android release signing
2023-02-13 18:09:51 +00:00

30 lines
799 B
Dart

import 'dart:io';
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart';
import 'package:retrofit/retrofit.dart';
import '../../main.dart';
mixin SafeApiCall {
Future<T> getDataFromApiCall<T>(Future<HttpResponse<T>> apiCall) async {
try {
HttpResponse<T> httpResponse = await apiCall;
return httpResponse.data;
} on DioError catch(dioError) {
Map<String, dynamic>? errorResponse = dioError.response?.data?["error"];
String error;
if (errorResponse?["message"] != null){
error = errorResponse!["message"];
} else if (dioError.message.isNotEmpty){
error = dioError.message;
} else {
error = "Failed to retrieve data from api";
}
logger.e(error);
throw HttpException(error);
}
}
}