TF-2245 Fix upload attachment when token expired on mobile

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit f866a3830310767eb20d622a20b2c14a9c286471)
This commit is contained in:
dab246
2023-10-24 11:37:16 +07:00
committed by Dat H. Pham
parent 14047c9ccc
commit 59dfef3928
2 changed files with 19 additions and 4 deletions
@@ -128,7 +128,9 @@ class AuthorizationInterceptors extends QueuedInterceptorsWrapper {
final response = await _dio.request(
requestOptions.path,
data: BodyBytesStream.fromBytes(uploadExtra[FileUploader.bytesExtraKey]),
data: uploadExtra[FileUploader.platformExtraKey] == 'web'
? BodyBytesStream.fromBytes(uploadExtra[FileUploader.bytesExtraKey])
: File(uploadExtra[FileUploader.filePathExtraKey]).openRead(),
queryParameters: requestOptions.queryParameters,
options: newOptions,
);
@@ -28,6 +28,7 @@ class FileUploader {
static const String bytesExtraKey = 'bytes';
static const String typeExtraKey = 'type';
static const String sizeExtraKey = 'size';
static const String filePathExtraKey = 'path';
final DioClient _dioClient;
final worker.Executor _isolateExecutor;
@@ -77,12 +78,24 @@ class FileUploader {
final headerParam = argsUpload.dioClient.getHeaders();
headerParam[HttpHeaders.contentTypeHeader] = argsUpload.mobileFileUpload.mimeType;
headerParam[HttpHeaders.contentLengthHeader] = argsUpload.mobileFileUpload.fileSize;
final data = File(argsUpload.mobileFileUpload.filePath).openRead();
final mapExtra = <String, dynamic>{
uploadAttachmentExtraKey: {
platformExtraKey: 'mobile',
filePathExtraKey: argsUpload.mobileFileUpload.filePath,
typeExtraKey: argsUpload.mobileFileUpload.mimeType,
sizeExtraKey: argsUpload.mobileFileUpload.fileSize,
}
};
final resultJson = await argsUpload.dioClient.post(
Uri.decodeFull(argsUpload.uploadUri.toString()),
options: Options(headers: headerParam),
data: data,
options: Options(
headers: headerParam,
extra: mapExtra
),
data: File(argsUpload.mobileFileUpload.filePath).openRead(),
onSendProgress: (count, total) {
log('FileUploader::_handleUploadAttachmentAction():onSendProgress: [${argsUpload.uploadId.id}] = $count');
sendPort.send(