TF-1809: Create func get detailed email in data layer

(cherry picked from commit 76a5e6fddfc7fb79e9e487d914b29de784ba523f)
This commit is contained in:
HuyNguyen
2023-05-16 00:53:21 +07:00
committed by Dat Vu
parent d6f2045db4
commit b17e4e4728
12 changed files with 96 additions and 13 deletions
@@ -0,0 +1,20 @@
import 'package:http_parser/http_parser.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
import 'package:model/email/attachment.dart';
import 'package:tmail_ui_user/features/offline_mode/model/attachment_hive_cache.dart';
extension AttachmentExtension on AttachmentHiveCache {
Attachment toAttachment() {
return Attachment(
partId: PartId(partId!),
blobId: Id(blobId!),
size: UnsignedInt(size!),
name: name,
type: MediaType.parse(type!),
cid: cid,
disposition: disposition?.toContentDisposition(),
);
}
}
@@ -0,0 +1,17 @@
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_acttachments_hive_cache_extension.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_email_header_hive_cache_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 DetailedEmailHiveCacheExtension on DetailedEmailHiveCache {
DetailedEmail toDetailedEmailWithContent(String emailContent) {
return DetailedEmail(
emailId: EmailId(Id(emailId)),
attachments: attachments?.toAttachment(),
headers: headers?.toListEmailHeader(),
htmlEmailContent: emailContent,
);
}
}
@@ -0,0 +1,6 @@
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 EmailHeaderHiveCacheExtension on EmailHeaderHiveCache {
EmailHeader toEmailHeader() => EmailHeader(name, value);
}
@@ -0,0 +1,7 @@
import 'package:model/email/attachment.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/attachment_hive_cache_extension.dart';
import 'package:tmail_ui_user/features/offline_mode/model/attachment_hive_cache.dart';
extension ListAttachmentsHiveCacheExtension on List<AttachmentHiveCache> {
List<Attachment> toAttachment() => map((attachmentHiveCache) => attachmentHiveCache.toAttachment()).toList();
}
@@ -0,0 +1,7 @@
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/email_header_hive_cache_extension.dart';
import 'package:tmail_ui_user/features/offline_mode/model/email_header_hive_cache.dart';
extension ListEmailHeaderExtension on List<EmailHeaderHiveCache> {
List<EmailHeader> toListEmailHeader() => map((emailHeaderHiveCache) => emailHeaderHiveCache.toEmailHeader()).toList();
}