create method

Future<Response<RazorpayDocument>> create({
  1. required String purpose,
  2. required MultipartFile file,
  3. Map<String, dynamic>? otherParams,
  4. void callback(
    1. RazorpayApiException?,
    2. Response<RazorpayDocument>?
    )?,
})

Create a Document

@param purpose - The purpose of the document (e.g., 'dispute_evidence'). @param file - The file to upload (use dio's MultipartFile). @param params - Additional parameters like notes.

Implementation

Future<Response<RazorpayDocument>> create({
  required String purpose,
  required MultipartFile file,
  Map<String, dynamic>? otherParams, // For potential future params like notes
  void Function(RazorpayApiException?, Response<RazorpayDocument>?)? callback,
}) async {
  if (purpose.isEmpty) {
    throw ArgumentError('purpose is required');
  }

  final formDataMap = {
    'purpose': purpose,
    'file': file,
    ...?otherParams,
  };

  return api.postFormData<RazorpayDocument>(
    {
      'url': BASE_URL,
      // 'formData' key removed, pass FormData directly
    },
    formData: FormData.fromMap(formDataMap),
    fromJsonFactory: RazorpayDocument.fromJson,
    callback: callback,
  );
}