httpMultiPartWithProgress<T> method

Future<ApiResponse<T>> httpMultiPartWithProgress<T>({
  1. required Function converter,
  2. List<FileItem>? files,
  3. Map<String, String>? fields,
  4. bool isAuth = true,
  5. String method = "POST",
})

Implementation

Future<ApiResponse<T>> httpMultiPartWithProgress<T>(
    {required Function converter,List<FileItem>? files,Map<String,String>? fields, bool isAuth = true, String method = "POST"}) async {
  var url = "${HttpX.instance.baseUrl}$this";
  try {
    final taskId = await FlutterUploader().enqueue(
      MultipartFormDataUpload(
        url: url,
        files: files,
        data: fields,
        method: (method == "PUT") ? UploadMethod.PUT : UploadMethod.POST,
        headers: {
          if (isAuth) HttpX.instance.headerName:  await HttpX.instance.token(),
          "content-type": "multipart/form-data"
        },
        tag: 'upload tag',
      ),
    );
    return ApiResponse<T>(
        code: HttpStatus.ok,
        data: converter(jsonDecode(taskId)),
        error: null);
  } catch (error) {
    return ApiResponse<T>(
        code: HttpStatus.internalServerError,
        data: null,
        error: error.toString());
  }
}