fetch method
Implementation
Future<HttpResponse> fetch({
required String path,
Map<String, dynamic>? params,
Map<String, dynamic>? headers,
int? maxAttempts,
Cache? enableCache,
}) async {
Future makeRequest() {
logger.debug('Make request: $path');
return _createRequest(
() => _dio.get(path, queryParameters: params, options: Options(headers: headers)),
onSuccess: (data) => Future.value(data),
maxAttempts: maxAttempts,
);
}
final result;
if (enableCache == null) {
result = await makeRequest();
} else {
final key = sha1.string(path + jsonEncode(params)).base64();
final cache = await Cache.init(duration: enableCache.duration);
result = await cache.get(key: key, process: makeRequest);
}
return HttpResponse(data: result);
}