performUpload method

Future<UploaderResponse<UploadResult>>? performUpload(
  1. UploadRequest request, {
  2. required UploadResult fromJson(
    1. Map<String, dynamic> data
    ),
})

Implementation

Future<UploaderResponse<UploadResult>>? performUpload(UploadRequest request,
    {required UploadResult Function(Map<String, dynamic> data) fromJson}) {
  if (request.payload == null) {
    throw ArgumentError('An upload request must have a payload');
  }
  var payload = request.payload!;
  var chunkSize = cloudinary.config.apiConfig.chunkSize;
  final uploadParams = request.params as UploadParams?;

  if (payload.value is String && Utils.isRemoteUrl(payload.value) ||
      (1 > payload.length || payload.length < chunkSize!)) {
    // Ensure correct type for `fromJson` when calling `callApi`
    return callApi(
      request,
      'upload',
      options: uploadParams,
      fromJson: fromJson,
    );
  }

  var uniqueUploadId = Utils.createRandomUploadId(8);
  _uploadLargeParts(payload, request, uniqueUploadId, fromJson: fromJson);
  return null;
}