TF-4383 Handle read only labels
This commit is contained in:
@@ -10,6 +10,7 @@ import 'package:jmap_dart_client/jmap/core/capability/submission_capability.dart
|
||||
import 'package:jmap_dart_client/jmap/core/capability/vacation_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/web_socket_ticket_capability.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/websocket_capability.dart';
|
||||
import 'package:labels/model/labels_capability.dart';
|
||||
import 'package:model/saas/saas_account_capability.dart';
|
||||
import 'package:model/support/contact_support_capability.dart';
|
||||
import 'package:scribe/scribe/ai/presentation/model/ai_capability.dart';
|
||||
@@ -41,6 +42,8 @@ class CapabilityPropertiesConverter {
|
||||
return properties.toJson();
|
||||
} else if (properties is AICapability) {
|
||||
return properties.toJson();
|
||||
} else if (properties is LabelsCapability) {
|
||||
return properties.toJson();
|
||||
} else if (properties is DefaultCapability) {
|
||||
return properties.properties;
|
||||
} else if (properties is EmptyCapability) {
|
||||
|
||||
@@ -12,6 +12,8 @@ import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart
|
||||
import 'package:jmap_dart_client/jmap/core/capability/capability_properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||
import 'package:labels/model/labels_capability.dart';
|
||||
import 'package:labels/utils/labels_constants.dart';
|
||||
import 'package:model/download_all/download_all_capability.dart';
|
||||
import 'package:model/mailbox/mailbox_constants.dart';
|
||||
import 'package:model/model.dart';
|
||||
@@ -36,6 +38,7 @@ extension SessionExtensions on Session {
|
||||
capabilityServerSettings: SettingsCapability.deserialize,
|
||||
linagoraSaaSCapability: SaaSAccountCapability.deserialize,
|
||||
AiScribeConstants.aiCapability: AICapability.fromJson,
|
||||
LabelsConstants.labelsCapability: LabelsCapability.fromJson,
|
||||
};
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
@@ -199,4 +202,22 @@ extension SessionExtensions on Session {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
LabelsCapability? getLabelsCapability(AccountId accountId) {
|
||||
try {
|
||||
if (!LabelsConstants.labelsCapability.isSupported(this, accountId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final labelsCapability = getCapabilityProperties<LabelsCapability>(
|
||||
accountId,
|
||||
LabelsConstants.labelsCapability,
|
||||
);
|
||||
log('SessionExtensions::getLabelsCapability:labelsCapability = $labelsCapability');
|
||||
return labelsCapability;
|
||||
} catch (e) {
|
||||
logWarning('SessionExtensions::getLabelsCapability():[Exception] $e');
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user