diff --git a/labels/lib/method/get/get_label_method.dart b/labels/lib/method/get/get_label_method.dart new file mode 100644 index 000000000..d65ebcfdb --- /dev/null +++ b/labels/lib/method/get/get_label_method.dart @@ -0,0 +1,41 @@ +import 'package:jmap_dart_client/http/converter/account_id_converter.dart'; +import 'package:jmap_dart_client/http/converter/id_converter.dart'; +import 'package:jmap_dart_client/http/converter/properties_converter.dart'; +import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart'; +import 'package:jmap_dart_client/jmap/core/method/request/get_method.dart'; +import 'package:jmap_dart_client/jmap/core/request/request_invocation.dart'; +import 'package:jmap_dart_client/jmap/core/request/result_reference.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:labels/labels.dart'; + +part 'get_label_method.g.dart'; + +@JsonSerializable( + explicitToJson: true, + converters: [ + IdConverter(), + AccountIdConverter(), + PropertiesConverter(), + ], +) +class GetLabelMethod extends GetMethod { + GetLabelMethod(super.accountId); + + @override + MethodName get methodName => MethodName('Label/get'); + + @override + Set get requiredCapabilities => { + CapabilityIdentifier.jmapCore, + LabelsConstants.labelsCapability, + }; + + @override + List get props => [methodName, accountId, ids, requiredCapabilities]; + + factory GetLabelMethod.fromJson(Map json) => + _$GetLabelMethodFromJson(json); + + @override + Map toJson() => _$GetLabelMethodToJson(this); +} diff --git a/labels/lib/method/get/get_label_response.dart b/labels/lib/method/get/get_label_response.dart new file mode 100644 index 000000000..e24bcc9e3 --- /dev/null +++ b/labels/lib/method/get/get_label_response.dart @@ -0,0 +1,31 @@ +import 'package:jmap_dart_client/http/converter/account_id_converter.dart'; +import 'package:jmap_dart_client/http/converter/id_converter.dart'; +import 'package:jmap_dart_client/http/converter/state_converter.dart'; +import 'package:jmap_dart_client/jmap/core/method/response/get_response.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:labels/labels.dart'; + +part 'get_label_response.g.dart'; + +@JsonSerializable( + converters: [ + StateConverter(), + AccountIdConverter(), + IdConverter(), + ], +) +class GetLabelResponse extends GetResponse