Skip to content

Commit

Permalink
TF-2769 Catch upload attachment error to modify exception
Browse files Browse the repository at this point in the history
  • Loading branch information
tddang-linagora authored and hoangdat committed Sep 10, 2024
1 parent f2a2097 commit 7bc466b
Showing 1 changed file with 47 additions and 36 deletions.
83 changes: 47 additions & 36 deletions lib/features/upload/data/network/file_uploader.dart
Original file line number Diff line number Diff line change
Expand Up @@ -81,43 +81,54 @@ class FileUploader {
UploadFileArguments argsUpload,
worker.TypeSendPort sendPort
) async {
final rootIsolateToken = argsUpload.isolateToken;
BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
await HiveCacheConfig.instance.setUp();

final headerParam = argsUpload.dioClient.getHeaders();
headerParam[HttpHeaders.contentTypeHeader] = argsUpload.mobileFileUpload.mimeType;
headerParam[HttpHeaders.contentLengthHeader] = argsUpload.mobileFileUpload.fileSize;

final mapExtra = <String, dynamic>{
uploadAttachmentExtraKey: {
filePathExtraKey: argsUpload.mobileFileUpload.filePath,
}
};
try {
final rootIsolateToken = argsUpload.isolateToken;
BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
await HiveCacheConfig.instance.setUp();

final headerParam = argsUpload.dioClient.getHeaders();
headerParam[HttpHeaders.contentTypeHeader] = argsUpload.mobileFileUpload.mimeType;
headerParam[HttpHeaders.contentLengthHeader] = argsUpload.mobileFileUpload.fileSize;

final mapExtra = <String, dynamic>{
uploadAttachmentExtraKey: {
filePathExtraKey: argsUpload.mobileFileUpload.filePath,
}
};

final resultJson = await argsUpload.dioClient.post(
Uri.decodeFull(argsUpload.uploadUri.toString()),
options: Options(
headers: headerParam,
extra: mapExtra
),
data: File(argsUpload.mobileFileUpload.filePath).openRead(),
onSendProgress: (count, total) {
log('FileUploader::_handleUploadAttachmentAction():onSendProgress: FILE[${argsUpload.uploadId.id}] : { PROGRESS = $count | TOTAL = $total}');
sendPort.send(
UploadingAttachmentUploadState(
argsUpload.uploadId,
count,
argsUpload.mobileFileUpload.fileSize
)
);
}
);
log('FileUploader::_handleUploadAttachmentAction():resultJson: $resultJson');
return _parsingResponse(
resultJson: resultJson,
fileName: argsUpload.mobileFileUpload.fileName
);
final resultJson = await argsUpload.dioClient.post(
Uri.decodeFull(argsUpload.uploadUri.toString()),
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(
UploadingAttachmentUploadState(
argsUpload.uploadId,
count,
argsUpload.mobileFileUpload.fileSize
)
);
}
);
log('FileUploader::_handleUploadAttachmentAction():resultJson: $resultJson');
return _parsingResponse(
resultJson: resultJson,
fileName: argsUpload.mobileFileUpload.fileName
);
} on DioError catch (exception) {
logError('FileUploader::_handleUploadAttachmentAction():DioError: $exception');

throw exception.copyWith(
requestOptions: exception.requestOptions.copyWith(data: ''));
} catch (exception) {
logError('FileUploader::_handleUploadAttachmentAction():OtherException: $exception');

rethrow;
}
}

Future<Attachment?> _handleUploadAttachmentActionOnWeb(
Expand Down

0 comments on commit 7bc466b

Please sign in to comment.