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