Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 48 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.swp
Expand All @@ -15,20 +16,46 @@
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Visual Studio Code related
.classpath
.project
.settings/
.vscode/

# Flutter repo-specific
/bin/cache/
/bin/mingit/
/dev/benchmarks/mega_gallery/
/dev/bots/.recipe_deps
/dev/bots/android_tools/
/dev/devicelab/ABresults*.json
/dev/docs/doc/
/dev/docs/flutter.docs.zip
/dev/docs/lib/
/dev/docs/pubspec.yaml
/dev/integration_tests/**/xcuserdata
/dev/integration_tests/**/Pods
/packages/flutter/coverage/
version
analysis_benchmark.json

# packages file containing multi-root paths
.packages.generated

# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
**/generated_plugin_registrant.dart
.packages
.pub-cache/
.pub/
build/
flutter_*.png
linked_*.ds
unlinked.ds
unlinked_spec.ds

# Android related
**/android/**/gradle-wrapper.jar
Expand All @@ -38,6 +65,8 @@ build/
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
*.jks

# iOS/XCode related
**/ios/**/*.mode1v3
Expand All @@ -56,20 +85,34 @@ build/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/.last_build_id
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/ephemeral
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

# macOS
**/macos/Flutter/GeneratedPluginRegistrant.swift
**/macos/Flutter/Flutter-Debug.xcconfig
**/macos/Flutter/Flutter-Release.xcconfig
**/macos/Flutter/Flutter-Profile.xcconfig

# Coverage
coverage/

# Symbols
app.*.symbols

# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!/dev/ci/**/Gemfile.lock
13 changes: 13 additions & 0 deletions lib/http/converter/account_id_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:json_annotation/json_annotation.dart';

class AccountIdConverter implements JsonConverter<AccountId, String> {
const AccountIdConverter();

@override
AccountId fromJson(String json) => AccountId(Id(json));

@override
String toJson(AccountId object) => object.id.value;
}
12 changes: 12 additions & 0 deletions lib/http/converter/capability_identifier_onverter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/core/capability/capability.dart';
import 'package:json_annotation/json_annotation.dart';

class CapabilityIdentifierConverter implements JsonConverter<CapabilityIdentifier, String> {
const CapabilityIdentifierConverter();

@override
CapabilityIdentifier fromJson(String json) => CapabilityIdentifier(json);

@override
String toJson(CapabilityIdentifier object) => object.value;
}
18 changes: 18 additions & 0 deletions lib/http/converter/id_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:json_annotation/json_annotation.dart';

class IdConverter implements JsonConverter<Id, String> {
const IdConverter();

@override
Id fromJson(String json) {
return Id(json);
}

@override
String toJson(Id object) {
return object.value;
}

}
16 changes: 16 additions & 0 deletions lib/http/converter/is_subscribed_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';

class IsSubscribedConverter implements JsonConverter<IsSubscribed?, bool?> {
const IsSubscribedConverter();

@override
IsSubscribed? fromJson(bool? json) {
return json != null ? IsSubscribed(json) : null;
}

@override
bool? toJson(IsSubscribed? object) {
return object?.value;
}
}
13 changes: 13 additions & 0 deletions lib/http/converter/mailbox_id_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';

class MailboxIdConverter implements JsonConverter<MailboxId, String> {
const MailboxIdConverter();

@override
MailboxId fromJson(String json) => MailboxId(Id(json));

@override
String toJson(MailboxId object) => object.id.value;
}
13 changes: 13 additions & 0 deletions lib/http/converter/mailbox_id_nullable_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';

class MailboxIdNullableConverter implements JsonConverter<MailboxId?, String?> {
const MailboxIdNullableConverter();

@override
MailboxId? fromJson(String? json) => json != null ? MailboxId(Id(json)) : null;

@override
String? toJson(MailboxId? object) => object?.id.value;
}
12 changes: 12 additions & 0 deletions lib/http/converter/mailbox_name_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';

class MailboxNameConverter implements JsonConverter<MailboxName?, String?> {
const MailboxNameConverter();

@override
MailboxName? fromJson(String? json) => json != null ? MailboxName(json) : null;

@override
String? toJson(MailboxName? object) => object?.name;
}
12 changes: 12 additions & 0 deletions lib/http/converter/method_call_id_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/core/request/request_invocation.dart';
import 'package:json_annotation/json_annotation.dart';

class MethodCallIdConverter implements JsonConverter<MethodCallId, String> {
const MethodCallIdConverter();

@override
MethodCallId fromJson(String json) => MethodCallId(json);

@override
String toJson(MethodCallId object) => object.value;
}
12 changes: 12 additions & 0 deletions lib/http/converter/method_name_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/core/request/request_invocation.dart';
import 'package:json_annotation/json_annotation.dart';

class MethodNameConverter implements JsonConverter<MethodName, String> {
const MethodNameConverter();

@override
MethodName fromJson(String json) => MethodName(json);

@override
String toJson(MethodName object) => object.value;
}
17 changes: 17 additions & 0 deletions lib/http/converter/method_response_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

import 'package:jmap_dart_client/jmap/core/method/method_response.dart';
import 'package:json_annotation/json_annotation.dart';

class MethodResponseConverter implements JsonConverter<MethodResponse, dynamic> {
const MethodResponseConverter();

@override
MethodResponse fromJson(dynamic json) {
return this.fromJson(json);
}

@override
dynamic toJson(MethodResponse object) {
return object;
}
}
25 changes: 25 additions & 0 deletions lib/http/converter/properties_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:json_annotation/json_annotation.dart';

class PropertiesConverter implements JsonConverter<Properties?, List<String>?> {
const PropertiesConverter();

@override
Properties? fromJson(List<String>? json) {
return json != null ? Properties(json.toSet()) : null;
}

@override
List<String>? toJson(Properties? object) {
if (object == null) {
return null;
}

if (object.value.isEmpty) {
return null;
}

return object.value.toList();
}
}
12 changes: 12 additions & 0 deletions lib/http/converter/reference_path_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/core/request/reference_path.dart';
import 'package:json_annotation/json_annotation.dart';

class ReferencePathConverter implements JsonConverter<ReferencePath, String> {
const ReferencePathConverter();

@override
ReferencePath fromJson(String json) => ReferencePath(json);

@override
String toJson(ReferencePath object) => object.value;
}
22 changes: 22 additions & 0 deletions lib/http/converter/request_invocation_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import 'dart:convert';

import 'package:jmap_dart_client/jmap/core/request/request_invocation.dart';
import 'package:json_annotation/json_annotation.dart';

class RequestInvocationConverter implements JsonConverter<RequestInvocation, List<dynamic>> {
const RequestInvocationConverter();

@override
RequestInvocation fromJson(List<dynamic> json) {
return RequestInvocation(MethodName(json[0]), jsonDecode(json[1]), jsonDecode(json[2]));
}

@override
List toJson(RequestInvocation object) {
List<dynamic> list = List.empty(growable: true);
list.add(object.methodName.value);
list.add(object.arguments.value.toJson());
list.add(object.methodCallId.value);
return list;
}
}
25 changes: 25 additions & 0 deletions lib/http/converter/response_invocation_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

import 'package:jmap_dart_client/jmap/core/request/request_invocation.dart';
import 'package:jmap_dart_client/jmap/core/response/response_invocation.dart';
import 'package:json_annotation/json_annotation.dart';

class ResponseInvocationConverter implements JsonConverter<ResponseInvocation, List<dynamic>> {
const ResponseInvocationConverter();

@override
ResponseInvocation fromJson(List<dynamic> json) {
if (json.length == 3) {
return ResponseInvocation(
MethodName(json[0]),
ResponseArguments(json[1]),
MethodCallId(json[2]));
} else {
throw Exception("Wrong response invocation");
}
}

@override
List toJson(ResponseInvocation object) {
return List.of({object.methodName, object.arguments, object.methodCallId});
}
}
12 changes: 12 additions & 0 deletions lib/http/converter/role_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';

class RoleConverter implements JsonConverter<Role?, String?> {
const RoleConverter();

@override
Role? fromJson(String? json) => json != null ? Role(json) : null;

@override
String? toJson(Role? object) => object?.value;
}
16 changes: 16 additions & 0 deletions lib/http/converter/sort_order_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:json_annotation/json_annotation.dart';

class SortOrderConverter implements JsonConverter<SortOrder?, int?> {
const SortOrderConverter();

@override
SortOrder? fromJson(int? json) {
return json != null ? SortOrder(sortValue: json) : null;
}

@override
int? toJson(SortOrder? object) {
return object?.value.value.toInt();
}
}
12 changes: 12 additions & 0 deletions lib/http/converter/state_converter.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:json_annotation/json_annotation.dart';

class StateConverter implements JsonConverter<State, String> {
const StateConverter();

@override
State fromJson(String json) => State(json);

@override
String toJson(State object) => object.value;
}
Loading