ApiException.fromDio constructor

ApiException.fromDio(
  1. DioException err
)

Implementation

factory ApiException.fromDio(DioException err) {
  final res = err.response;
  final statusCode = res?.statusCode;
  final data = res?.data;
  String message = err.message ?? 'Network error';
  String? code;

  if (data is Map<String, dynamic>) {
    message = data['message'] as String? ?? data['error'] as String? ?? message;
    code = data['code'] as String?;
  }

  if (statusCode != null) {
    if (statusCode == 401) message = 'Unauthorized';
    if (statusCode == 403) message = 'Forbidden';
    if (statusCode == 404) message = 'Not found';
    if (statusCode >= 500) message = 'Server error';
  }

  return ApiException(
    message: message,
    statusCode: statusCode,
    code: code,
  );
}