updateSubscriptionItem method

Future<void> updateSubscriptionItem(
  1. String itemId,
  2. int quantity,
  3. bool invoiceImmediately,
  4. bool disableProrations,
  5. String apiKey,
)

Implementation

Future<void> updateSubscriptionItem(
  String itemId,
  int quantity,
  bool invoiceImmediately,
  bool disableProrations,
  String apiKey,
) async {
  final dioOptions = Options(
    headers: {
      "Authorization": "Bearer $apiKey",
      "Accept": "application/vnd.api+json",
      "Content-Type": "application/vnd.api+json",
    },
  );

  final Map<String, dynamic> data = {
    "data": {
      "type": "subscription-items",
      "id": itemId,
      "attributes": {
        "quantity": quantity,
        "invoice_immediately": invoiceImmediately,
        "disable_prorations": disableProrations,
      },
    },
  };

  try {
    final response = await dio.patch(
      "https://api.lemonsqueezy.com/v1/subscription-items/$itemId",
      data: data,
      options: dioOptions,
    );

    if (response.statusCode == 200) {
      print('Subscription item updated successfully:');
      print(response.data);
    } else {
      print('Failed to update subscription item');
    }
  } catch (e) {
    print('Error updating subscription item: $e');
  }
}