create method

Future<Response<RazorpayQrCode>> create({
  1. required dynamic params,
  2. void callback(
    1. RazorpayApiException?,
    2. Response<RazorpayQrCode>?
    )?,
})

Creates a qrcode (standard or GST compliant)

@param params - Check doc for required params Accepts RazorpayQrCodeCreateRequestBody or RazorpayQrCodeGstCreateRequestBody.

Implementation

Future<Response<RazorpayQrCode>> create({
  required dynamic params, // Use dynamic for union type
  void Function(RazorpayApiException?, Response<RazorpayQrCode>?)? callback,
}) async {
  const url = BASE_URL;
  Map<String, dynamic> requestData;
  if (params is RazorpayQrCodeCreateRequestBody ||
      params is RazorpayQrCodeGstCreateRequestBody) {
    requestData = params is RazorpayQrCodeCreateRequestBody
        ? params.toJson()
        : params is RazorpayQrCodeGstCreateRequestBody
            ? params.toJson()
            : {};
  } else {
    throw ArgumentError('Invalid params type for QR Code creation.');
  }

  return api.post<RazorpayQrCode>(
    {
      'url': url,
      'data': requestData,
    },
    fromJsonFactory: RazorpayQrCode.fromJson,
    callback: callback,
  );
}