multipart static method

Future<Result> multipart(
  1. String endpoint, {
  2. int timeout = 3,
  3. Map<String, dynamic>? queryPara,
  4. Map<String, String>? headers,
  5. Map<String, Map<String, dynamic>>? files,
  6. Map<String, String>? fields,
})

Multipart request for file uploads Example:

final result = await UnifiedHttpClient.multipart(
  '/upload',
  files: {
    'image': {
      'path': '/path/to/image.jpg',
      'filename': 'image.jpg',
    },
  },
  fields: {
    'title': 'My Image',
    'description': 'Image description',
  },
);

Implementation

static Future<Result> multipart(
  String endpoint, {
  int timeout = 3,
  Map<String, dynamic>? queryPara,
  Map<String, String>? headers,
  Map<String, Map<String, dynamic>>? files,
  Map<String, String>? fields,
}) async {
  if (!await InternetConnectionChecker().hasConnection) {
    CustomSnackbar().showNoInternetSnackbar();
  }
  if (useHttp) {
    final res = await PackageHttp.multipartRequest(
      url: PackageHttp.getUriFromEndpoints(endpoint: endpoint, queryParams: queryPara),
      headers: headers,
      files: files,
      fields: fields,
    );

    if (res.runtimeType == Failure) {
      return res as Failure;
    }
    return mapHttpResponseToResult(res);
  } else {
    final res = await PackageDio.dioMultipart(
      urlPath: endpoint,
      headers: headers,
      queryPara: queryPara,
      files: files,
      fields: fields,
    );

    if (res.runtimeType == Failure) {
      return res as Failure;
    }
    return mapDioResponseToResult(res);
  }
}