TF-1625 Add method check capability is supported or not?

(cherry picked from commit ee45272afab3195a50255838c50c8c8be7f0c418)
This commit is contained in:
dab246
2023-03-21 14:59:03 +07:00
committed by Dat Vu
parent 9f956df08b
commit 4cd4715856
+14
View File
@@ -1,3 +1,4 @@
import 'package:core/utils/app_logger.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/session/session.dart';
@@ -23,4 +24,17 @@ void requireCapability(Session session, AccountId accountId, List<CapabilityIden
if (missingCapabilities.isNotEmpty) {
throw SessionMissingCapability(missingCapabilities);
}
}
extension CapabilityIdentifierExtension on List<CapabilityIdentifier> {
bool isSupported(Session session, AccountId accountId) {
try {
requireCapability(session, accountId, this);
return true;
} catch (error) {
logError('CapabilityIdentifierExtension::isSupported(): $error');
return false;
}
}
}