uploadFileBea method
Future<GenericServerResponse<BeaStorageOutput> >
uploadFileBea({
- GenericServerInput<
BeaStorageInput> ? input, - OnUploadProgressCallback? onUploadProgress,
- CancelToken? cancelToken,
Implementation
Future<GenericServerResponse<BeaStorageOutput>> uploadFileBea({GenericServerInput<BeaStorageInput>? input, OnUploadProgressCallback? onUploadProgress, CancelToken? cancelToken}) async {
GenericServerResponse<BeaStorageOutput> genericServerResponse = new GenericServerResponse<BeaStorageOutput>();
try{
if(input == null || input.input == null || input.input!.fileToUpload == null){
throw new Exception("Input not found or not valid.");
}
String? token = await bsm!.getBeaStorage().read(key: KeyUtils.KEY_TOKEN_SESSION);
File? file = input.input!.fileToUpload;
String url = UrlUtils.getUrl(_baseUrl, UrlUtils.URL_STORAGE);
url = url + '?description=${input.input!.description}';
final mimeTypeData = lookupMimeType(input.input!.fileToUpload!.path, headerBytes: [0xFF, 0xD8])!.split('/');
Map<String, String> headers = {
"Authorization": "Bearer $token",
"Content-Type": "application/json",
"User-agent": "http.agent"
};
Dio dio = new Dio();
FormData formData = FormData.fromMap({
"file": await MultipartFile.fromFile(file!.path, filename:path.basename(file.path), contentType: MediaType(mimeTypeData[0], mimeTypeData[1])),
});
dio.options.headers.addAll(headers);
dio.options.sendTimeout = 5000;
dio.options.receiveTimeout = 10000;
var response = await dio.postUri(
Uri.parse(url),
data: formData,
cancelToken: cancelToken,
onSendProgress: (rec, total) {
onUploadProgress!(rec, total);
});
switch(response.statusCode){
case 200:
genericServerResponse.data = BeaStorageOutput.fromJson(response.data);
break;
case 500:
var res = response.data['error'];
BeaError? error = res == null ? res : BeaError.fromJson(res);
if (error != null) {
genericServerResponse.beaError = error;
} else {
genericServerResponse.beaError = new BeaError("Unknown Error", 0, "");
}
break;
case 401:
genericServerResponse.beaSession = new BeaSession(true);
break;
}
}catch(e){
print('Error to upload file to server BEA');
FLog.error(
className: this.runtimeType.toString(),
methodName: "uploadFileBea",
text: 'Error to upload file to server BEA - $e');
throw e;
}
return genericServerResponse;
}