Add AI capability
This commit is contained in:
@@ -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/capability/capability_properties.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.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/core/unsigned_int.dart';
|
||||||
|
import 'package:model/ai/ai_capability.dart';
|
||||||
|
import 'package:model/ai/capability_ai.dart';
|
||||||
import 'package:model/download_all/download_all_capability.dart';
|
import 'package:model/download_all/download_all_capability.dart';
|
||||||
import 'package:model/mailbox/mailbox_constants.dart';
|
import 'package:model/mailbox/mailbox_constants.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
@@ -33,6 +35,7 @@ extension SessionExtensions on Session {
|
|||||||
linagoraDownloadAllCapability: DownloadAllCapability.deserialize,
|
linagoraDownloadAllCapability: DownloadAllCapability.deserialize,
|
||||||
capabilityServerSettings: SettingsCapability.deserialize,
|
capabilityServerSettings: SettingsCapability.deserialize,
|
||||||
linagoraSaaSCapability: SaaSAccountCapability.deserialize,
|
linagoraSaaSCapability: SaaSAccountCapability.deserialize,
|
||||||
|
capabilityAI: AICapability.deserialize,
|
||||||
};
|
};
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
@@ -165,4 +168,18 @@ extension SessionExtensions on Session {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AICapability? getAICapability(AccountId accountId) {
|
||||||
|
try {
|
||||||
|
final aiCapability = getCapabilityProperties<AICapability>(
|
||||||
|
accountId,
|
||||||
|
capabilityAI,
|
||||||
|
);
|
||||||
|
log('SessionExtensions::getAICapability:aiCapability = $aiCapability');
|
||||||
|
return aiCapability;
|
||||||
|
} catch (e) {
|
||||||
|
logError('SessionExtensions::getAICapability():[Exception] $e');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import 'package:jmap_dart_client/jmap/core/capability/capability_properties.dart';
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'ai_capability.g.dart';
|
||||||
|
|
||||||
|
@JsonSerializable(includeIfNull: false)
|
||||||
|
class AICapability extends CapabilityProperties {
|
||||||
|
AICapability({this.scribeEndpoint});
|
||||||
|
|
||||||
|
final String? scribeEndpoint;
|
||||||
|
|
||||||
|
factory AICapability.fromJson(Map<String, dynamic> json) => _$AICapabilityFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$AICapabilityToJson(this);
|
||||||
|
|
||||||
|
factory AICapability.deserialize(Map<String, dynamic> json) => _$AICapabilityFromJson(json);
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object?> get props => [scribeEndpoint];
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||||
|
|
||||||
|
final capabilityAI = CapabilityIdentifier(Uri.parse('com:linagora:params:jmap:aibot'));
|
||||||
Reference in New Issue
Block a user