onError method

  1. @override
void onError(
  1. DioException err,
  2. ErrorInterceptorHandler handler
)

Called when an exception was occurred during the request.

Implementation

@override
void onError(DioException err, ErrorInterceptorHandler handler) {
  final id = err.requestOptions.extra['debug_id'];
  final entry = _pendingLogs.remove(id);

  if (entry != null) {
    final updated = DebugLogEntry(
      id: entry.id,
      timestamp: entry.timestamp,
      method: entry.method,
      url: entry.url,
      baseUrl: entry.baseUrl,
      requestData: entry.requestData,
      queryParameters: entry.queryParameters,
      statusCode: err.response?.statusCode,
      isError: true,
      errorMessage: err.message,
      responseData: err.response?.data,
      duration: DateTime.now().difference(entry.timestamp),
    );
    _controller.updateLog(entry.id, updated);
  }
  handler.next(err);
}