delete method

Future<Response<RazorpayTokenDeleteResponse>> delete({
  1. required String tokenId,
  2. void callback(
    1. RazorpayApiException?,
    2. Response<RazorpayTokenDeleteResponse>?
    )?,
})

Delete a token (Token HQ)

@param tokenId - The ID of the token to delete.

Implementation

Future<Response<RazorpayTokenDeleteResponse>> delete({
  // JS returns [], use specific empty model
  required String tokenId,
  void Function(
    RazorpayApiException?,
    Response<RazorpayTokenDeleteResponse>?,
  )? callback,
}) async {
  if (tokenId.isEmpty) {
    throw ArgumentError('tokenId is required');
  }
  // Note: JS uses POST for delete, which is unusual. Following JS implementation.
  return api.post<RazorpayTokenDeleteResponse>(
    {
      'url': '$BASE_URL/delete',
      'data': {'id': tokenId}, // Pass ID in the body
    },
    fromJsonFactory: RazorpayTokenDeleteResponse.fromJson,
    callback: callback,
  );
}