TF-675 Add AttachmentUploadDataSource and implement upload attachment

This commit is contained in:
dab246
2022-07-05 19:30:06 +07:00
committed by Dat H. Pham
parent ad1c6f55c5
commit 68cf78dc80
2 changed files with 41 additions and 0 deletions
@@ -0,0 +1,8 @@
import 'package:dio/dio.dart';
import 'package:model/upload/file_info.dart';
import 'package:tmail_ui_user/features/upload/domain/model/upload_attachment.dart';
abstract class AttachmentUploadDataSource {
UploadAttachment uploadAttachment(FileInfo fileInfo, Uri uploadUri, {CancelToken? cancelToken});
}
@@ -0,0 +1,33 @@
import 'package:dio/dio.dart';
import 'package:model/upload/file_info.dart';
import 'package:tmail_ui_user/features/upload/data/datasource/attachment_upload_datasource.dart';
import 'package:tmail_ui_user/features/upload/data/network/file_uploader.dart';
import 'package:tmail_ui_user/features/upload/domain/model/upload_attachment.dart';
import 'package:tmail_ui_user/features/upload/domain/model/upload_task_id.dart';
import 'package:uuid/uuid.dart';
class AttachmentUploadDataSourceImpl extends AttachmentUploadDataSource {
final FileUploader _fileUploader;
AttachmentUploadDataSourceImpl(this._fileUploader);
@override
UploadAttachment uploadAttachment(FileInfo fileInfo, Uri uploadUri, {CancelToken? cancelToken}) {
final attachmentUploadId = _generateAttachmentUploadId();
final uploadAttachment = UploadAttachment(
attachmentUploadId,
fileInfo,
uploadUri,
_fileUploader,
cancelToken: cancelToken)
..upload();
return uploadAttachment;
}
UploadTaskId _generateAttachmentUploadId() {
return UploadTaskId(const Uuid().v4());
}
}