TF-1604: Add requiredCapabilities support TeamMailbox for SetEmailMethod

(cherry picked from commit af9432c91755489a544b781bf068dd037fc627ee)
This commit is contained in:
HuyNguyen
2023-03-22 13:32:49 +07:00
committed by Dat Vu
parent 02e5d9e6aa
commit a794d8491e
28 changed files with 477 additions and 291 deletions
@@ -2,7 +2,6 @@ import 'dart:async';
import 'package:jmap_dart_client/http/http_client.dart';
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/filter/filter.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/request/reference_path.dart';
@@ -27,23 +26,6 @@ class ThreadAPI {
ThreadAPI(this.httpClient);
Set<CapabilityIdentifier> _capabilitiesForEmailMethod(Session session, AccountId accountId) {
final getMailboxCreated = GetEmailMethod(accountId);
try {
requireCapability(
session,
accountId,
[CapabilityIdentifier.jmapTeamMailboxes]);
return {
CapabilityIdentifier.jmapCore,
CapabilityIdentifier.jmapMail,
CapabilityIdentifier.jmapTeamMailboxes
};
} catch (_) {
return getMailboxCreated.requiredCapabilities;
}
}
Future<EmailsResponse> getAllEmail(
Session session,
AccountId accountId,
@@ -78,8 +60,11 @@ class ThreadAPI {
final getEmailInvocation = jmapRequestBuilder.invocation(getEmailMethod);
final capabilities = getEmailMethod.requiredCapabilities
.toCapabilitiesSupportTeamMailboxes(session, accountId);
final result = await (jmapRequestBuilder
..usings(_capabilitiesForEmailMethod(session, accountId)))
..usings(capabilities))
.build()
.execute();
@@ -133,8 +118,11 @@ class ThreadAPI {
final getEmailUpdatedInvocation = jmapRequestBuilder.invocation(getMailboxUpdated);
final getEmailCreatedInvocation = jmapRequestBuilder.invocation(getEmailCreated);
final capabilities = getEmailCreated.requiredCapabilities
.toCapabilitiesSupportTeamMailboxes(session, accountId);
final result = await (jmapRequestBuilder
..usings(_capabilitiesForEmailMethod(session, accountId)))
..usings(capabilities))
.build()
.execute();
@@ -175,8 +163,11 @@ class ThreadAPI {
final getEmailInvocation = jmapRequestBuilder.invocation(getEmailMethod);
final capabilities = getEmailMethod.requiredCapabilities
.toCapabilitiesSupportTeamMailboxes(session, accountId);
final result = await (jmapRequestBuilder
..usings(_capabilitiesForEmailMethod(session, accountId)))
..usings(capabilities))
.build()
.execute();