TF-2677 Create get server settings

This commit is contained in:
DatDang
2024-03-06 09:39:11 +07:00
committed by Dat H. Pham
parent 32000faab1
commit 3de33a1035
3 changed files with 167 additions and 0 deletions
@@ -0,0 +1,40 @@
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/account_id.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:server_settings/server_settings/capability_server_settings.dart';
part 'get_server_settings_method.g.dart';
@JsonSerializable(
explicitToJson: true,
converters: [
IdConverter(),
AccountIdConverter(),
PropertiesConverter()
])
class GetServerSettingsMethod extends GetMethod {
GetServerSettingsMethod(AccountId accountId) : super(accountId);
@override
MethodName get methodName => MethodName('Settings/get');
@override
Set<CapabilityIdentifier> get requiredCapabilities => {
CapabilityIdentifier.jmapCore,
capabilityServerSettings,
};
@override
List<Object?> get props => [methodName, accountId, ids, requiredCapabilities];
factory GetServerSettingsMethod.fromJson(Map<String, dynamic> json) => _$GetServerSettingsMethodFromJson(json);
@override
Map<String, dynamic> toJson() => _$GetServerSettingsMethodToJson(this);
}
@@ -0,0 +1,33 @@
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/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/method/response/get_response.dart';
import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:server_settings/server_settings/tmail_server_settings.dart';
part 'get_server_settings_response.g.dart';
@JsonSerializable(converters: [
StateConverter(),
AccountIdConverter(),
IdConverter()
])
class GetServerSettingsResponse extends GetResponse<TMailServerSettings> {
GetServerSettingsResponse(AccountId accountId, State state, List<TMailServerSettings> list, List<Id>? notFound) : super(accountId, state, list, notFound);
factory GetServerSettingsResponse.fromJson(Map<String, dynamic> json) =>
_$GetServerSettingsResponseFromJson(json);
static GetServerSettingsResponse deserialize(Map<String, dynamic> json) {
return GetServerSettingsResponse.fromJson(json);
}
Map<String, dynamic> toJson() => _$GetServerSettingsResponseToJson(this);
@override
List<Object?> get props => [accountId, state, list, notFound];
}