blob: 3a9d7c3c976eaa3b722162b42f45c04bf69e19eb [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import '../errors/in_app_purchase_error.dart';
import 'product_details.dart';
/// The response returned by [InAppPurchasePlatform.queryProductDetails].
///
/// A list of [ProductDetails] can be obtained from the this response.
class ProductDetailsResponse {
/// Creates a new [ProductDetailsResponse] with the provided response details.
ProductDetailsResponse(
{required this.productDetails, required this.notFoundIDs, this.error});
/// Each [ProductDetails] uniquely matches one valid identifier in [identifiers] of [InAppPurchasePlatform.queryProductDetails].
final List<ProductDetails> productDetails;
/// The list of identifiers that are in the `identifiers` of [InAppPurchasePlatform.queryProductDetails] but failed to be fetched.
///
/// There are multiple platform-specific reasons that product information could fail to be fetched,
/// ranging from products not being correctly configured in the storefront to the queried IDs not existing.
final List<String> notFoundIDs;
/// A caught platform exception thrown while querying the purchases.
///
/// The value is `null` if there is no error.
///
/// It's possible for this to be null but for there still to be notFoundIds in cases where the request itself was a success but the
/// requested IDs could not be found.
final IAPError? error;
}