mapException static method

IapError mapException(
  1. Object error
)

Maps an exception to an IapError.

Implementation

static IapError mapException(Object error) {
  final errorString = error.toString().toLowerCase();

  // Cancelled
  if (errorString.contains('cancel') ||
      errorString.contains('user_canceled')) {
    return IapError.fromCode(ErrorCodes.cancelled, originalError: error);
  }

  // Network
  if (errorString.contains('network') || errorString.contains('socket')) {
    return IapError.fromCode(ErrorCodes.networkError, originalError: error);
  }

  // Payment
  if (errorString.contains('payment') || errorString.contains('billing')) {
    return IapError.fromCode(ErrorCodes.paymentDeclined,
        originalError: error);
  }

  // Product
  if (errorString.contains('product') || errorString.contains('sku')) {
    return IapError.fromCode(ErrorCodes.productNotFound,
        originalError: error);
  }

  // Not allowed
  if (errorString.contains('not_allowed') ||
      errorString.contains('restricted')) {
    return IapError.fromCode(ErrorCodes.notAllowed, originalError: error);
  }

  // Default
  return IapError(
    code: ErrorCodes.unknown,
    message: error.toString(),
    originalError: error,
  );
}