mapFlutterPurchaseToPurchase function
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');
}
}