From 2e96b87fc41d365abbaa7cd51dda9b2345c1b930 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 21 Mar 2023 15:00:29 +0700 Subject: [PATCH] TF-1625 Get capability supported for `Identity/get` method (cherry picked from commit bf9f7dbf8dae3c7e527c550f01b367cb5e18a5cd) --- .../data/network/identity_api.dart | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/features/manage_account/data/network/identity_api.dart b/lib/features/manage_account/data/network/identity_api.dart index a1dbb1dc0..6100c0dce 100644 --- a/lib/features/manage_account/data/network/identity_api.dart +++ b/lib/features/manage_account/data/network/identity_api.dart @@ -1,7 +1,10 @@ + 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/patch_object.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; +import 'package:jmap_dart_client/jmap/core/session/session.dart'; import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; import 'package:jmap_dart_client/jmap/identities/get/get_identity_method.dart'; import 'package:jmap_dart_client/jmap/identities/get/get_identity_response.dart'; @@ -15,28 +18,27 @@ import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_id import 'package:tmail_ui_user/features/manage_account/domain/model/edit_default_identity_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/edit_identity_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/identities_response.dart'; +import 'package:tmail_ui_user/main/error/capability_validator.dart'; class IdentityAPI { final HttpClient _httpClient; IdentityAPI(this._httpClient); - Future getAllIdentities(AccountId accountId, {Properties? properties}) async { + Future getAllIdentities(Session session, AccountId accountId, {Properties? properties}) async { final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation()); final getIdentityMethod = GetIdentityMethod(accountId); - var capability = getIdentityMethod.requiredCapabilities; if (properties != null) { getIdentityMethod.addProperties(properties); - if(properties.value.contains('sortOrder')) { - capability = getIdentityMethod.requiredCapabilitiesSupportSortOrder; - } - } else { - capability = getIdentityMethod.requiredCapabilitiesSupportSortOrder; } + final capabilitySupported = [CapabilityIdentifier.jamesSortOrder].isSupported(session, accountId) + ? getIdentityMethod.requiredCapabilitiesSupportSortOrder + : getIdentityMethod.requiredCapabilities; + final queryInvocation = requestBuilder.invocation(getIdentityMethod); final result = await (requestBuilder - ..usings(capability)) + ..usings(capabilitySupported)) .build() .execute();