From b96dbde4e119560ce3b59389a01a4e14265838b3 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 19 Jul 2023 16:08:36 +0700 Subject: [PATCH] TF-1857 Add properties for Email/get when calendar event supported (cherry picked from commit 7192dab6a3916cb6b61009960ae89488696ba95b) --- .../email/presentation/utils/email_utils.dart | 18 ++++++++++++++++++ .../domain/constants/thread_constants.dart | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 lib/features/email/presentation/utils/email_utils.dart diff --git a/lib/features/email/presentation/utils/email_utils.dart b/lib/features/email/presentation/utils/email_utils.dart new file mode 100644 index 000000000..ed0cd8c8b --- /dev/null +++ b/lib/features/email/presentation/utils/email_utils.dart @@ -0,0 +1,18 @@ + +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart'; +import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; +import 'package:jmap_dart_client/jmap/core/session/session.dart'; +import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart'; +import 'package:tmail_ui_user/main/error/capability_validator.dart'; + +class EmailUtils { + + static Properties getPropertiesForEmailGetMethod(Session session, AccountId accountId) { + if (CapabilityIdentifier.jamesCalendarEvent.isSupported(session, accountId)) { + return ThreadConstants.propertiesCalendarEvent; + } else { + return ThreadConstants.propertiesDefault; + } + } +} \ No newline at end of file diff --git a/lib/features/thread/domain/constants/thread_constants.dart b/lib/features/thread/domain/constants/thread_constants.dart index 0bcc4f406..a60335f33 100644 --- a/lib/features/thread/domain/constants/thread_constants.dart +++ b/lib/features/thread/domain/constants/thread_constants.dart @@ -1,5 +1,6 @@ import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; +import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart'; import 'package:model/email/email_property.dart'; class ThreadConstants { @@ -67,4 +68,22 @@ class ThreadConstants { EmailProperty.attachments, EmailProperty.headers }); + + static final propertiesCalendarEvent = Properties({ + EmailProperty.id, + EmailProperty.subject, + EmailProperty.from, + EmailProperty.to, + EmailProperty.cc, + EmailProperty.bcc, + EmailProperty.keywords, + EmailProperty.size, + EmailProperty.receivedAt, + EmailProperty.sentAt, + EmailProperty.preview, + EmailProperty.hasAttachment, + EmailProperty.replyTo, + EmailProperty.mailboxIds, + IndividualHeaderIdentifier.headerCalendarEvent.value, + }); } \ No newline at end of file