uploadFiles static method
Future
uploadFiles(
- String endPoint,
- Map<
String, String> fileParams, { - List<
File> ? files, - bool isUserAvatar = false,
- bool hasAuth = true,
- Map<
String, String> ? dataParams, - required String token,
- bool? defaultResponse,
- Map<
String, String> ? customHeader, - bool isTypeJson = true,
- String? changeLocalization,
- String requestType = 'POST',
- String tokenKey = 'Bearer ',
- bool? useDefaultURl,
- bool? showLogs,
- bool? usePreCheckFn,
- int? callTimeoutInSec,
Implementation
static Future<dynamic> uploadFiles(
String endPoint,
Map<String, String> fileParams, {
List<File>? files,
bool isUserAvatar = false,
bool hasAuth = true,
Map<String, String>? dataParams,
required String token,
bool? defaultResponse,
Map<String, String>? customHeader,
bool isTypeJson = true,
String? changeLocalization,
String requestType = 'POST',
String tokenKey = 'Bearer ',
bool? useDefaultURl,
bool? showLogs,
bool? usePreCheckFn,
int? callTimeoutInSec,
}) async {
Uri url = HttpCalls.getRequestURL(endPoint, useDefaultURl: useDefaultURl);
dynamic response;
try {
await callPreCheckFn(usePreCheckFn);
final Map<String, String> header = {};
if ((localization ?? changeLocalization) != null) {
header['X-localization'] = localization ?? changeLocalization ?? '';
header['Accept-Language'] = localization ?? changeLocalization ?? '';
}
if (isTypeJson) {
header[HttpHeaders.contentTypeHeader] = 'application/json';
}
if (hasAuth) {
header[Static.httpCallTokenKey??HttpHeaders.authorizationHeader] = '${Static.canHttpCallAddBearerAsPreToken?tokenKey:''}$token';
}
if (headerAddOns != null) {
header.addAll(headerAddOns!);
}
showLog((customHeader ?? httpHeader ?? header),
showLog: showLogs, logName: endPoint);
showLog((dataParams), showLog: showLogs, logName: endPoint);
showLog((fileParams), showLog: showLogs, logName: endPoint);
var request = MultipartRequest(
requestType,
url,
);
if (files != null) {
for (int i = 0; i < files.length; i++) {
request.files.add(
http.MultipartFile(
'file',
http.ByteStream(ByteStream(files[i].openRead())),
await files[i].length(),
filename: files[i].path),
);
}
} else {
await Future.forEach(
fileParams.entries,
(file) async {
showLog(file.key, showLog: showLogs, logName: endPoint);
showLog(file.value, showLog: showLogs, logName: endPoint);
request.files.add(
await MultipartFile.fromPath(file.key, file.value),
);
},
);
}
request.headers.addAll(customHeader ?? httpHeader ?? header);
if (dataParams != null) {
request.fields.addAll(dataParams);
}
var streamedResponse = await request.send();
var result = await Response.fromStream(streamedResponse);
showLog(result.body.toString(),
enableJsonEncode: false, showLog: showLogs, logName: endPoint);
response =
HttpCalls.getDataObject(result, defaultResponse: defaultResponse);
} catch (e) {
response = errorHandler(e, response, defaultResponse);
}
return response;
}