retryAllFailedRequests method

Future<void> retryAllFailedRequests()

Implementation

Future<void> retryAllFailedRequests() async {
  if (_isRetrying || _failedRequestsQueue.isEmpty) return;

  _isRetrying = true;
  final requests = List<FailedRequest>.from(_failedRequestsQueue);
  _failedRequestsQueue.clear();

  for (final failed in requests) {
    try {
      await prepareRequest(url: failed.requestOptions.path);
      final response = await _dio.fetch(failed.requestOptions);
      failed.completer.complete(response);
    } catch (e) {
      failed.completer.completeError(e);
      _failedRequestsQueue.add(failed);
    }
  }

  _isRetrying = false;
}