create static method

ApiError create(
  1. dynamic error, {
  2. int? statusCode,
  3. String? message,
})

Implementation

static ApiError create(dynamic error, {int? statusCode, String? message}) {
  final code = statusCode ?? _extractStatusCode(error);
  final msg =
      message ?? _extractErrorMessage(error) ?? 'Unknown error occurred';

  if (code == null) {
    return NetworkError(msg, rawError: error);
  }

  if (code >= 500) {
    return ServerError(msg, statusCode: code, rawError: error);
  } else if (code == 401 || code == 403) {
    return AuthenticationError(msg, statusCode: code, rawError: error);
  } else if (code >= 400 && code < 500) {
    return ClientError(msg, statusCode: code, rawError: error);
  } else {
    return UnknownApiError(msg, statusCode: code, rawError: error);
  }
}