TF-1810 Implement store detailed email to cache
(cherry picked from commit 6be6d69ad8e5fb05d839e2649b1f444613eea6d1)
This commit is contained in:
@@ -151,7 +151,7 @@ class EmailDataSourceImpl extends EmailDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeDetailedEmailToCache(Session session, AccountId accountId, DetailedEmail detailedEmail) {
|
||||
Future<void> storeDetailedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@@ -161,4 +161,9 @@ class EmailDataSourceImpl extends EmailDataSource {
|
||||
return await emailAPI.getDetailedEmailById(session, accountId, emailId);
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeEmail(Session session, AccountId accountId, Email email) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
@@ -28,18 +28,22 @@ import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_r
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/worker/hive_task.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/extensions/email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
|
||||
|
||||
class EmailHiveCacheDataSourceImpl extends EmailDataSource {
|
||||
|
||||
final DetailedEmailCacheManager _emailCacheManager;
|
||||
final DetailedEmailCacheManager _detailedEmailCacheManager;
|
||||
final DetailedEmailCacheWorkerQueue _cacheWorkerQueue;
|
||||
final EmailCacheManager _emailCacheManager;
|
||||
final FileUtils _fileUtils;
|
||||
final ExceptionThrower _exceptionThrower;
|
||||
|
||||
EmailHiveCacheDataSourceImpl(
|
||||
this._emailCacheManager,
|
||||
this._detailedEmailCacheManager,
|
||||
this._cacheWorkerQueue,
|
||||
this._emailCacheManager,
|
||||
this._fileUtils,
|
||||
this._exceptionThrower
|
||||
);
|
||||
@@ -105,7 +109,7 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeDetailedEmailToCache(Session session, AccountId accountId, DetailedEmail detailedEmail) {
|
||||
Future<void> storeDetailedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail) {
|
||||
return Future.sync(() async {
|
||||
final task = HiveTask(
|
||||
runnable: () async {
|
||||
@@ -118,7 +122,7 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
|
||||
log('EmailHiveCacheDataSourceImpl::storeDetailedEmailToCache():fileSavedPath: ${fileSaved.path}');
|
||||
final detailedEmailSaved = detailedEmail.fromEmailContentPath(fileSaved.path);
|
||||
|
||||
final detailedEmailCache = await _emailCacheManager.handleStoreDetailedEmailToCache(
|
||||
final detailedEmailCache = await _detailedEmailCacheManager.handleStoreDetailedEmail(
|
||||
accountId,
|
||||
session.username,
|
||||
detailedEmailSaved.toHiveCache());
|
||||
@@ -138,4 +142,11 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
|
||||
Future<Email> getDetailedEmailById(Session session, AccountId accountId, EmailId emailId) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> storeEmail(Session session, AccountId accountId, Email email) {
|
||||
return Future.sync(() async {
|
||||
return await _emailCacheManager.storeEmail(accountId, session.username, email.toEmailCache());
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user