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
|
||||
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId) {
|
||||
return emailDataSource[DataSourceType.hiveCache]!.getOpenedEmail(session, accountId, emailId);
|
||||
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId) async {
|
||||
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<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId);
|
||||
|
||||
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail);
|
||||
|
||||
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:jmap_dart_client/jmap/account_id.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/utils/cache_utils.dart';
|
||||
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
|
||||
@@ -69,4 +70,15 @@ class DetailedEmailCacheManager {
|
||||
Future<void> _deleteFileExisted(String pathFile) async {
|
||||
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
|
||||
) async {
|
||||
final emailContentPathExists = await _isFileExisted(emailId);
|
||||
final detailedEmailCacheExists = await getDetailEmailExistedInCache(accountId, userName, emailId);
|
||||
final detailedEmailCacheExists = await getOpenedEmailExistedInCache(accountId, userName, emailId);
|
||||
|
||||
return emailContentPathExists == true && detailedEmailCacheExists != null;
|
||||
}
|
||||
@@ -81,13 +81,13 @@ class OpenedEmailCacheManager {
|
||||
Future<bool?> _isFileExisted(EmailId emailId) async {
|
||||
final fileSaved = await _fileUtils.isFileExisted(
|
||||
nameFile: emailId.asString,
|
||||
folderPath: CachingConstants.openedEmailContentFolderNamee,
|
||||
folderPath: CachingConstants.openedEmailContentFolderName,
|
||||
);
|
||||
log('OpenedEmailCacheManager::_getDetailedEmailCache():_getEmailContentPath: $fileSaved');
|
||||
return fileSaved;
|
||||
}
|
||||
|
||||
Future<DetailedEmailHiveCache?> getDetailEmailExistedInCache(
|
||||
Future<DetailedEmailHiveCache?> getOpenedEmailExistedInCache(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
EmailId emailId
|
||||
|
||||
Reference in New Issue
Block a user