TF-1869: Double check email have been duplicated and remove it

(cherry picked from commit d1d448502228633554ea6eeb9a4bb9c98f849b18)
This commit is contained in:
HuyNguyen
2023-05-24 11:31:12 +07:00
committed by Dat Vu
parent acda93f8e1
commit 953894e3a9
12 changed files with 23 additions and 23 deletions
@@ -80,11 +80,11 @@ abstract class EmailDataSource {
Future<void> storeEmail(Session session, AccountId accountId, Email email);
Future<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId);
Future<Email?> getEmailStored(Session session, AccountId accountId, EmailId emailId);
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail);
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId);
Future<DetailedEmail?> getDetailedEmail(Session session, AccountId accountId, EmailId emailId);
Future<DetailedEmail?> getIncomingEmailedStored(Session session, AccountId accountId, EmailId emailId);
}
@@ -178,12 +178,12 @@ class EmailDataSourceImpl extends EmailDataSource {
}
@override
Future<DetailedEmail?> getDetailedEmail(Session session, AccountId accountId, EmailId emailId) {
Future<DetailedEmail?> getIncomingEmailedStored(Session session, AccountId accountId, EmailId emailId) {
throw UnimplementedError();
}
@override
Future<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId) {
Future<Email?> getEmailStored(Session session, AccountId accountId, EmailId emailId) {
throw UnimplementedError();
}
}
@@ -211,18 +211,19 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
}
@override
Future<DetailedEmail?> getDetailedEmail(Session session, AccountId accountId, EmailId emailId) {
Future<DetailedEmail?> getIncomingEmailedStored(Session session, AccountId accountId, EmailId emailId) {
return Future.sync(() async {
final detailedEmailHiveCache = await _detailedEmailCacheManager.getDetailEmailExistedInCache(accountId, session.username, emailId);
if (detailedEmailHiveCache == null) {
return null;
}
log('EmailHiveCacheDataSourceImpl::getDetailedEmail():folderPath: ${detailedEmailHiveCache.emailContentPath}');
final emailContent = await _fileUtils.getContentFromFile(
nameFile: emailId.asString,
folderPath: CachingConstants.newEmailContentFolderName
folderPath: CachingConstants.incomingEmailedContentFolderName
);
return detailedEmailHiveCache.toDetailedEmailWithContent(emailContent);
@@ -230,9 +231,8 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
}
@override
Future<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId) {
Future<Email?> getEmailStored(Session session, AccountId accountId, EmailId emailId) {
return Future.sync(() async {
log('EmailHiveCacheDataSourceImpl::getEmailFromCache():emailId: ${emailId.asString}');
final email = await _emailCacheManager.getEmailFromCache(accountId, session.username, emailId);
log('EmailHiveCacheDataSourceImpl::getEmailFromCache():emailId: $email');
return email?.toEmail();
@@ -206,17 +206,17 @@ class EmailRepositoryImpl extends EmailRepository {
@override
Future<DetailedEmail?> getOpenedEmail(Session session, AccountId accountId, EmailId emailId) async {
final detailedEmail = await emailDataSource[DataSourceType.hiveCache]!.getDetailedEmail(session, accountId, emailId);
final getIncomingEmailedStored = await emailDataSource[DataSourceType.hiveCache]!.getIncomingEmailedStored(session, accountId, emailId);
final openedEmail = await emailDataSource[DataSourceType.hiveCache]!.getOpenedEmail(session, accountId, emailId);
if (detailedEmail != null) {
return detailedEmail;
if (getIncomingEmailedStored != null) {
return getIncomingEmailedStored;
} else {
return openedEmail;
}
}
@override
Future<Email?> getEmailFromCache(Session session, AccountId accountId, EmailId emailId) {
return emailDataSource[DataSourceType.hiveCache]!.getEmailFromCache(session, accountId, emailId);
Future<Email?> getEmailStored(Session session, AccountId accountId, EmailId emailId) {
return emailDataSource[DataSourceType.hiveCache]!.getEmailStored(session, accountId, emailId);
}
}