TF-1810 Add StoreDetailedEmailToCacheInteractor to store detailed email to cache

(cherry picked from commit 60a91537f7ea1225b5ca67f6dd9ef358b33939da)
This commit is contained in:
dab246
2023-05-10 12:06:20 +07:00
committed by Dat Vu
parent d6a5c88281
commit 892fceb037
28 changed files with 440 additions and 75 deletions
@@ -0,0 +1,31 @@
import 'package:model/extensions/email_id_extensions.dart';
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_attachments_extension.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_email_header_extension.dart';
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_cache.dart';
extension DetailedEmailExtension on DetailedEmail {
DetailedEmailHiveCache toHiveCache() {
return DetailedEmailHiveCache(
emailId: emailId.asString,
timeSaved: DateTime.now(),
attachments: attachments?.toHiveCache(),
headers: headers?.toHiveCache(),
emailContentPath: emailContentPath
);
}
String get folderPath => '${CachingConstants.appFolderName}/${CachingConstants.emailContentFolderName}';
DetailedEmail fromEmailContentPath(String path) {
return DetailedEmail(
emailId: emailId,
attachments: attachments,
headers: headers,
htmlEmailContent: htmlEmailContent,
emailContentPath: path,
);
}
}