purchase method

  1. @override
Future<bool> purchase({
  1. required String productId,
  2. dynamic product,
})
override

Purchase product by id

Implementation

@override
Future<bool> purchase({
  required String productId,
  dynamic product,
}) async {
  assert(product != null, 'Product can\'t be null');

  logger.info('Start purchase $productId');
  if (product is! ApphudProduct)
    throw const WrongProductTypeProvidedException();

  final purchaseResult = await Apphud.purchase(
    product: product,
  );
  final error = purchaseResult.error;

  if (error != null) {
    logger.info('Failed to purchase product');
    throw const PurchaseFailedException(ErrorCode.unknown);
  }

  final isSubscriptionSuccess =
      purchaseResult.subscription?.isActive ?? false;
  subscriptionStatus.add(isSubscriptionSuccess);

  return isSubscriptionSuccess;
}