TF-1869: Create func GetEmailFromCache and GetDetailedEmail
(cherry picked from commit 3a83a951e997db749363c19853bc7ac3ac0c650c)
This commit is contained in:
@@ -205,7 +205,18 @@ class EmailRepositoryImpl extends EmailRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId) {
|
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId) async {
|
||||||
return emailDataSource[DataSourceType.hiveCache]!.getOpenedEmail(session, accountId, emailId);
|
final detailedEmail = await emailDataSource[DataSourceType.hiveCache]!.getDetailedEmail(session, accountId, emailId);
|
||||||
|
final openedEmail = await emailDataSource[DataSourceType.hiveCache]!.getOpenedEmail(session, accountId, emailId);
|
||||||
|
if (detailedEmail != null) {
|
||||||
|
return detailedEmail;
|
||||||
|
} else {
|
||||||
|
return openedEmail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId) {
|
||||||
|
return emailDataSource[DataSourceType.hiveCache]!.getEmailFromCache(session, accountId, emailId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,6 +94,8 @@ abstract class EmailRepository {
|
|||||||
|
|
||||||
Future<void> storeEmailToCache(Session session, AccountId accountId, Email email);
|
Future<void> storeEmailToCache(Session session, AccountId accountId, Email email);
|
||||||
|
|
||||||
|
Future<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId);
|
||||||
|
|
||||||
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail);
|
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail);
|
||||||
|
|
||||||
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId);
|
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId);
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ import 'package:core/utils/app_logger.dart';
|
|||||||
import 'package:core/utils/file_utils.dart';
|
import 'package:core/utils/file_utils.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||||
import 'package:model/extensions/account_id_extensions.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/clients/detailed_email_hive_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/clients/detailed_email_hive_cache_client.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/utils/cache_utils.dart';
|
import 'package:tmail_ui_user/features/caching/utils/cache_utils.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
|
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
|
||||||
@@ -69,4 +70,15 @@ class DetailedEmailCacheManager {
|
|||||||
Future<void> _deleteFileExisted(String pathFile) async {
|
Future<void> _deleteFileExisted(String pathFile) async {
|
||||||
await _fileUtils.deleteFile(pathFile);
|
await _fileUtils.deleteFile(pathFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<DetailedEmailHiveCache?> getDetailEmailExistedInCache(
|
||||||
|
AccountId accountId,
|
||||||
|
UserName userName,
|
||||||
|
EmailId emailId
|
||||||
|
) async {
|
||||||
|
final keyCache = TupleKey(emailId.asString, accountId.asString, userName.value).encodeKey;
|
||||||
|
final detailedEmailCache = await _cacheClient.getItem(keyCache);
|
||||||
|
log('DetailedEmailCacheManager::getDetailEmailExistedInCache():Email: $detailedEmailCache');
|
||||||
|
return detailedEmailCache;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -73,7 +73,7 @@ class OpenedEmailCacheManager {
|
|||||||
EmailId emailId
|
EmailId emailId
|
||||||
) async {
|
) async {
|
||||||
final emailContentPathExists = await _isFileExisted(emailId);
|
final emailContentPathExists = await _isFileExisted(emailId);
|
||||||
final detailedEmailCacheExists = await getDetailEmailExistedInCache(accountId, userName, emailId);
|
final detailedEmailCacheExists = await getOpenedEmailExistedInCache(accountId, userName, emailId);
|
||||||
|
|
||||||
return emailContentPathExists == true && detailedEmailCacheExists != null;
|
return emailContentPathExists == true && detailedEmailCacheExists != null;
|
||||||
}
|
}
|
||||||
@@ -81,13 +81,13 @@ class OpenedEmailCacheManager {
|
|||||||
Future<bool?> _isFileExisted(EmailId emailId) async {
|
Future<bool?> _isFileExisted(EmailId emailId) async {
|
||||||
final fileSaved = await _fileUtils.isFileExisted(
|
final fileSaved = await _fileUtils.isFileExisted(
|
||||||
nameFile: emailId.asString,
|
nameFile: emailId.asString,
|
||||||
folderPath: CachingConstants.openedEmailContentFolderNamee,
|
folderPath: CachingConstants.openedEmailContentFolderName,
|
||||||
);
|
);
|
||||||
log('OpenedEmailCacheManager::_getDetailedEmailCache():_getEmailContentPath: $fileSaved');
|
log('OpenedEmailCacheManager::_getDetailedEmailCache():_getEmailContentPath: $fileSaved');
|
||||||
return fileSaved;
|
return fileSaved;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<DetailedEmailHiveCache?> getDetailEmailExistedInCache(
|
Future<DetailedEmailHiveCache?> getOpenedEmailExistedInCache(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
UserName userName,
|
UserName userName,
|
||||||
EmailId emailId
|
EmailId emailId
|
||||||
|
|||||||
Reference in New Issue
Block a user