TF-675 Add AttachmentUploadDataSource and implement upload attachment
This commit is contained in:
@@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user