create method
Future<Response>
create({
- required dynamic params,
- void callback(
- RazorpayApiException?,
- Response?
Creates a Subscription or Registration Link
@param params - Check docs. Accepts RazorpaySubscriptionCreateRequestBody or RazorpaySubscriptionLinkCreateRequestBody or RazorpayRegistrationLinkBaseRequestBody
Implementation
Future<Response<dynamic>> create({
// Return dynamic as response type varies
required dynamic params, // Use dynamic for union type
void Function(RazorpayApiException?, Response<dynamic>?)? callback,
}) async {
var url = BASE_URL;
Map<String, dynamic> requestData;
FromJsonFactory<dynamic> fromJsonFactory;
if (params is RazorpaySubscriptionCreateRequestBody ||
params is RazorpaySubscriptionLinkCreateRequestBody) {
url = BASE_URL;
requestData = params is RazorpaySubscriptionCreateRequestBody
? params.toJson()
: params is RazorpaySubscriptionLinkCreateRequestBody
? params.toJson()
: {};
fromJsonFactory = RazorpaySubscription.fromJson;
} else if (params is RazorpayRegistrationLinkBaseRequestBody) {
url = '/subscription_registration/auth_links';
requestData = params.toJson();
fromJsonFactory = RazorpayRegistrationLink.fromJson;
} else {
throw ArgumentError(
'Invalid params type for subscription/link creation.',
);
}
// The actual type T will be determined by the fromJsonFactory passed.
return api.post<dynamic>(
{
'url': url,
'data': requestData,
},
fromJsonFactory: fromJsonFactory,
callback: callback,
);
}