convertToPurchaseError function

PurchaseError convertToPurchaseError(
  1. PurchaseResult result, {
  2. required IapPlatform platform,
})

Implementation

iap_err.PurchaseError convertToPurchaseError(
  PurchaseResult result, {
  required gentype.IapPlatform platform,
}) {
  gentype.ErrorCode code = gentype.ErrorCode.Unknown;

  if (result.code != null && result.code!.isNotEmpty) {
    final detected =
        iap_err.ErrorCodeUtils.fromPlatformCode(result.code!, platform);
    if (detected != gentype.ErrorCode.Unknown) {
      code = detected;
    }
  }

  if (code == gentype.ErrorCode.Unknown) {
    switch (result.responseCode) {
      case 0:
        code = gentype.ErrorCode.Unknown;
        break;
      case 1:
        code = gentype.ErrorCode.UserCancelled;
        break;
      case 2:
        code = gentype.ErrorCode.ServiceError;
        break;
      case 3:
        code = gentype.ErrorCode.BillingUnavailable;
        break;
      case 4:
        code = gentype.ErrorCode.ItemUnavailable;
        break;
      case 5:
        code = gentype.ErrorCode.DeveloperError;
        break;
      case 6:
        code = gentype.ErrorCode.Unknown;
        break;
      case 7:
        code = gentype.ErrorCode.AlreadyOwned;
        break;
      case 8:
        code = gentype.ErrorCode.PurchaseError;
        break;
    }
  }

  return iap_err.PurchaseError(
    message: result.message ?? 'Unknown error',
    code: code,
  );
}