mapFlutterPurchaseToPurchase function

Purchase mapFlutterPurchaseToPurchase(
  1. FlutterPurchaseResultWrapper result
)

Implementation

Purchase mapFlutterPurchaseToPurchase(FlutterPurchaseResultWrapper result) {
  if (result.productPurchase != null) {
    final productPurchase = result.productPurchase!;
    final status = _mapFlutterProductPurchaseStatusToProductPurchaseStatus(
        productPurchase.status as FlutterProductPurchaseStatus?);
    final purchaseType = mapFlutterPurchaseTypeToPurchaseType(
        result.productPurchase!.purchaseType);
    return ProductPurchase._(
      purchaseId: productPurchase.purchaseId,
      invoiceId: productPurchase.invoiceId,
      orderId: productPurchase.orderId,
      purchaseType: purchaseType,
      description: productPurchase.description,
      purchaseTime: productPurchase.purchaseTime,
      price: productPurchase.price,
      amountLabel: productPurchase.amountLabel,
      currency: productPurchase.currency,
      status: status,
      developerPayload: productPurchase.developerPayload,
      sandbox: productPurchase.sandbox,
      productId: productPurchase.productId,
      productType:
          mapFlutterProductTypeToProductType(productPurchase.productType),
      quantity: productPurchase.quantity,
    );
  } else if (result.subscriptionPurchase != null) {
    final subscriptionPurchase = result.subscriptionPurchase!;
    final status =
        _mapFlutterSubscriptionPurchaseStatusToSubscriptionPurchaseStatus(
            subscriptionPurchase.status as FlutterSubscriptionPurchaseStatus?);
    final purchaseType = mapFlutterPurchaseTypeToPurchaseType(
        result.subscriptionPurchase!.purchaseType);
    return SubscriptionPurchase._(
      purchaseId: subscriptionPurchase.purchaseId,
      invoiceId: subscriptionPurchase.invoiceId,
      orderId: subscriptionPurchase.orderId,
      purchaseType: purchaseType,
      description: subscriptionPurchase.description,
      purchaseTime: subscriptionPurchase.purchaseTime,
      price: subscriptionPurchase.price,
      amountLabel: subscriptionPurchase.amountLabel,
      currency: subscriptionPurchase.currency,
      status: status,
      developerPayload: subscriptionPurchase.developerPayload,
      sandbox: subscriptionPurchase.sandbox,
      productId: subscriptionPurchase.productId,
      expirationDate: subscriptionPurchase.expirationDate,
      gracePeriodEnabled: subscriptionPurchase.gracePeriodEnabled,
    );
  } else {
    throw UnsupportedError('Unknown purchase type');
  }
}