cancel method

Future<Response<RazorpaySubscription>> cancel({
  1. required String subscriptionId,
  2. bool cancelAtCycleEnd = false,
  3. void callback(
    1. RazorpayApiException?,
    2. Response<RazorpaySubscription>?
    )?,
})

Cancel a subscription given id and optional cancelAtCycleEnd

@param subscriptionId - The unique identifier of the Subscription. @param cancelAtCycleEnd - false (default): Cancel immediately. true: Cancel at cycle end.

Implementation

Future<Response<RazorpaySubscription>> cancel({
  required String subscriptionId,
  bool cancelAtCycleEnd = false,
  void Function(RazorpayApiException?, Response<RazorpaySubscription>?)?
      callback,
}) async {
  if (subscriptionId.isEmpty) {
    throw ArgumentError(MISSING_ID_ERROR);
  }
  final url = '$BASE_URL/$subscriptionId/cancel';
  final data = cancelAtCycleEnd ? {'cancel_at_cycle_end': 1} : null;

  return api.post<RazorpaySubscription>(
    {
      'url': url,
      if (data != null) 'data': data,
    },
    fromJsonFactory: RazorpaySubscription.fromJson,
    callback: callback,
  );
}