TF-1810 Add StoreDetailedEmailToCacheInteractor to store detailed email to cache
(cherry picked from commit 60a91537f7ea1225b5ca67f6dd9ef358b33939da)
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
|
||||
import 'package:model/email/attachment.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/attachment_hive_cache.dart';
|
||||
|
||||
extension AttachmentExtension on Attachment {
|
||||
AttachmentHiveCache toHiveCache() {
|
||||
return AttachmentHiveCache(
|
||||
partId: partId?.value,
|
||||
blobId: blobId?.value,
|
||||
size: size?.value.toInt(),
|
||||
name: name,
|
||||
type: type?.mimeType,
|
||||
cid: cid,
|
||||
disposition: disposition?.name
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/email_header_hive_cache.dart';
|
||||
|
||||
extension EmailHeaderExtension on EmailHeader {
|
||||
EmailHeaderHiveCache toHiveCache() => EmailHeaderHiveCache(name: name, value: value);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
import 'package:model/email/attachment.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/extensions/attachment_extension.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/attachment_hive_cache.dart';
|
||||
|
||||
extension ListAttachmentsExtension on List<Attachment> {
|
||||
List<AttachmentHiveCache> toHiveCache() => map((attachment) => attachment.toHiveCache()).toList();
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/extensions/email_header_extension.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/model/email_header_hive_cache.dart';
|
||||
|
||||
extension ListEmailHeaderExtension on List<EmailHeader> {
|
||||
List<EmailHeaderHiveCache> toHiveCache() => map((emailHeader) => emailHeader.toHiveCache()).toList();
|
||||
}
|
||||
Reference in New Issue
Block a user