uploadImage method

Future uploadImage(
  1. XFile image, {
  2. required ApiRequest apiRequest,
})

Upload a single image

Implementation

Future uploadImage(XFile image, {required ApiRequest apiRequest}) async {
  FormData formData = FormData();

  Uint8List bytes = await image.readAsBytes();

  formData.files.add(
    MapEntry(
      apiRequest.imageKey,
      MultipartFile.fromBytes(bytes, filename: image.name),
    ),
  );

  if (apiRequest.postData != null) {
    formData.fields.add(
      MapEntry(apiRequest.postDataKey, apiRequest.postData),
    );
  }

  /// setup the API for the request
  _setupApiFromRequest(apiRequest);

  Uri uri = Uri.parse(apiRequest.url);

  return await network(
    request: (api) => api.request(
      uri.path,
      queryParameters: uri.queryParameters,
      data: formData,
      options: Options(method: apiRequest.method.toUpperCase()),
    ),
    baseUrl: uri.origin,
    headers: apiRequest.headers,
    handleFailure: apiRequest.onError,
  );
}