TF-2769 Catch upload attachment error to modify exception
This commit is contained in:
@@ -81,43 +81,54 @@ class FileUploader {
|
|||||||
UploadFileArguments argsUpload,
|
UploadFileArguments argsUpload,
|
||||||
worker.TypeSendPort sendPort
|
worker.TypeSendPort sendPort
|
||||||
) async {
|
) async {
|
||||||
final rootIsolateToken = argsUpload.isolateToken;
|
try {
|
||||||
BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
|
final rootIsolateToken = argsUpload.isolateToken;
|
||||||
await HiveCacheConfig.instance.setUp();
|
BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
|
||||||
|
await HiveCacheConfig.instance.setUp();
|
||||||
|
|
||||||
final headerParam = argsUpload.dioClient.getHeaders();
|
final headerParam = argsUpload.dioClient.getHeaders();
|
||||||
headerParam[HttpHeaders.contentTypeHeader] = argsUpload.mobileFileUpload.mimeType;
|
headerParam[HttpHeaders.contentTypeHeader] = argsUpload.mobileFileUpload.mimeType;
|
||||||
headerParam[HttpHeaders.contentLengthHeader] = argsUpload.mobileFileUpload.fileSize;
|
headerParam[HttpHeaders.contentLengthHeader] = argsUpload.mobileFileUpload.fileSize;
|
||||||
|
|
||||||
final mapExtra = <String, dynamic>{
|
final mapExtra = <String, dynamic>{
|
||||||
uploadAttachmentExtraKey: {
|
uploadAttachmentExtraKey: {
|
||||||
filePathExtraKey: argsUpload.mobileFileUpload.filePath,
|
filePathExtraKey: argsUpload.mobileFileUpload.filePath,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
final resultJson = await argsUpload.dioClient.post(
|
final resultJson = await argsUpload.dioClient.post(
|
||||||
Uri.decodeFull(argsUpload.uploadUri.toString()),
|
Uri.decodeFull(argsUpload.uploadUri.toString()),
|
||||||
options: Options(
|
options: Options(
|
||||||
headers: headerParam,
|
headers: headerParam,
|
||||||
extra: mapExtra
|
extra: mapExtra
|
||||||
),
|
),
|
||||||
data: File(argsUpload.mobileFileUpload.filePath).openRead(),
|
data: File(argsUpload.mobileFileUpload.filePath).openRead(),
|
||||||
onSendProgress: (count, total) {
|
onSendProgress: (count, total) {
|
||||||
log('FileUploader::_handleUploadAttachmentAction():onSendProgress: FILE[${argsUpload.uploadId.id}] : { PROGRESS = $count | TOTAL = $total}');
|
log('FileUploader::_handleUploadAttachmentAction():onSendProgress: [${argsUpload.uploadId.id}] = $count');
|
||||||
sendPort.send(
|
sendPort.send(
|
||||||
UploadingAttachmentUploadState(
|
UploadingAttachmentUploadState(
|
||||||
argsUpload.uploadId,
|
argsUpload.uploadId,
|
||||||
count,
|
count,
|
||||||
argsUpload.mobileFileUpload.fileSize
|
argsUpload.mobileFileUpload.fileSize
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
log('FileUploader::_handleUploadAttachmentAction():resultJson: $resultJson');
|
log('FileUploader::_handleUploadAttachmentAction():resultJson: $resultJson');
|
||||||
return _parsingResponse(
|
return _parsingResponse(
|
||||||
resultJson: resultJson,
|
resultJson: resultJson,
|
||||||
fileName: argsUpload.mobileFileUpload.fileName
|
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(
|
Future<Attachment?> _handleUploadAttachmentActionOnWeb(
|
||||||
|
|||||||
Reference in New Issue
Block a user