diff --git a/bitrise.yml b/bitrise.yml index 7bf02cf37..4b78e3277 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -74,6 +74,9 @@ workflows: cd ../contact flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs + cd ../rule_filter + flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs + cd .. flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs diff --git a/rule_filter/.gitignore b/rule_filter/.gitignore index 96486fd93..4dbb0d67c 100644 --- a/rule_filter/.gitignore +++ b/rule_filter/.gitignore @@ -8,7 +8,6 @@ .buildlog/ .history .svn/ -migrate_working_dir/ # IntelliJ related *.iml @@ -28,3 +27,7 @@ migrate_working_dir/ .dart_tool/ .packages build/ + +#generated file +*.g.dart +*.mocks.dart diff --git a/rule_filter/lib/data/datasource/rule_filter_datasource.dart b/rule_filter/lib/data/datasource/rule_filter_datasource.dart new file mode 100644 index 000000000..df526b30d --- /dev/null +++ b/rule_filter/lib/data/datasource/rule_filter_datasource.dart @@ -0,0 +1,12 @@ +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; + +abstract class RuleFilterDataSource { + Future> getListTMailRule(AccountId accountId); + + Future updateListTMailRule( + List listTMailRuleKeep, + List listTMailRuleUpdate, + AccountId accountId, + ); +} diff --git a/rule_filter/lib/data/datasource_impl/rule_filter_datasource_impl.dart b/rule_filter/lib/data/datasource_impl/rule_filter_datasource_impl.dart new file mode 100644 index 000000000..9f5c6a554 --- /dev/null +++ b/rule_filter/lib/data/datasource_impl/rule_filter_datasource_impl.dart @@ -0,0 +1,45 @@ +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:rule_filter/data/datasource/rule_filter_datasource.dart'; +import 'package:rule_filter/data/network/rule_filter_api.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; + +class RuleFilterDataSourceImpl extends RuleFilterDataSource { + final RuleFilterAPI _ruleFilterAPI; + + RuleFilterDataSourceImpl(this._ruleFilterAPI); + + @override + Future> getListTMailRule(AccountId accountId) { + return Future.sync(() async { + final listTMailRules = await _ruleFilterAPI.getListTMailRule(accountId); + return listTMailRules; + }).catchError((error) { + throw error; + }); + } + + @override + Future updateListTMailRule( + List listTMailRuleKeep, + List listTMailRuleUpdate, + AccountId accountId, + ) { + final List listTMailRule = List.empty(growable: true); + listTMailRule.addAll(listTMailRuleUpdate); + for (var itemTMailRuleKeep in listTMailRuleKeep) { + if (listTMailRuleUpdate + .where((itemTMailRuleUpdate) => + itemTMailRuleKeep == itemTMailRuleUpdate) + .isNotEmpty) { + listTMailRuleKeep.remove(itemTMailRuleKeep); + } + } + listTMailRule.addAll(listTMailRuleKeep); + + return Future.sync(() async { + await _ruleFilterAPI.updateListTMailRule(listTMailRule, accountId); + }).catchError((error) { + throw error; + }); + } +} diff --git a/rule_filter/lib/data/network/rule_filter_api.dart b/rule_filter/lib/data/network/rule_filter_api.dart new file mode 100644 index 000000000..3acf8dc60 --- /dev/null +++ b/rule_filter/lib/data/network/rule_filter_api.dart @@ -0,0 +1,68 @@ +import 'package:jmap_dart_client/http/http_client.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/jmap_request.dart'; +import 'package:rule_filter/rule_filter/get/get_rule_filter_method.dart'; +import 'package:rule_filter/rule_filter/get/get_rule_filter_response.dart'; +import 'package:rule_filter/rule_filter/rule_filter_id.dart'; +import 'package:rule_filter/rule_filter/set/set_rule_filter_method.dart'; +import 'package:rule_filter/rule_filter/set/set_rule_filter_response.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; + +class RuleFilterAPI { + final HttpClient _httpClient; + + RuleFilterAPI(this._httpClient); + + Future> getListTMailRule(AccountId accountId) async { + final processingInvocation = ProcessingInvocation(); + final requestBuilder = + JmapRequestBuilder(_httpClient, processingInvocation); + + final getRuleFilterMethod = GetRuleFilterMethod( + accountId, + ); + + final getRuleFilterInvocation = + requestBuilder.invocation(getRuleFilterMethod); + final response = await (requestBuilder + ..usings(getRuleFilterMethod.requiredCapabilities)) + .build() + .execute(); + + final result = response.parse( + getRuleFilterInvocation.methodCallId, + GetRuleFilterResponse.deserialize); + + if (result?.list.isEmpty == true) { + return []; + } + + return result?.list.first.rules ?? []; + } + + Future updateListTMailRule( + List listTMailRule, AccountId accountId) async { + final processingInvocation = ProcessingInvocation(); + final requestBuilder = + JmapRequestBuilder(_httpClient, processingInvocation); + + final setRuleFilterMethod = SetRuleFilterMethod(accountId) + ..addUpdateRuleFilter( + {Id(RuleFilterIdType.singleton.value): listTMailRule}, + ); + + final setRuleFilterInvocation = + requestBuilder.invocation(setRuleFilterMethod); + final response = await (requestBuilder + ..usings(setRuleFilterMethod.requiredCapabilities)) + .build() + .execute(); + + final result = response.parse( + setRuleFilterInvocation.methodCallId, + SetRuleFilterResponse.deserialize); + + return result; + } +} diff --git a/rule_filter/lib/capability_rule_filter.dart b/rule_filter/lib/rule_filter/capability_rule_filter.dart similarity index 100% rename from rule_filter/lib/capability_rule_filter.dart rename to rule_filter/lib/rule_filter/capability_rule_filter.dart diff --git a/rule_filter/lib/converter/rule_filter_id_coverter.dart b/rule_filter/lib/rule_filter/converter/rule_filter_id_coverter.dart similarity index 85% rename from rule_filter/lib/converter/rule_filter_id_coverter.dart rename to rule_filter/lib/rule_filter/converter/rule_filter_id_coverter.dart index a230869e8..42e3fdac3 100644 --- a/rule_filter/lib/converter/rule_filter_id_coverter.dart +++ b/rule_filter/lib/rule_filter/converter/rule_filter_id_coverter.dart @@ -1,6 +1,6 @@ import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/rule_filter_id.dart'; +import 'package:rule_filter/rule_filter/rule_filter_id.dart'; class RuleFilterIdConverter implements JsonConverter { const RuleFilterIdConverter(); diff --git a/rule_filter/lib/converter/rule_id_converter.dart b/rule_filter/lib/rule_filter/converter/rule_id_converter.dart similarity index 85% rename from rule_filter/lib/converter/rule_id_converter.dart rename to rule_filter/lib/rule_filter/converter/rule_id_converter.dart index e7a9fe5c1..68ecbde6c 100644 --- a/rule_filter/lib/converter/rule_id_converter.dart +++ b/rule_filter/lib/rule_filter/converter/rule_id_converter.dart @@ -1,6 +1,6 @@ import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/rule_id.dart'; +import 'package:rule_filter/rule_filter/rule_id.dart'; class RuleIdConverter implements JsonConverter { const RuleIdConverter(); diff --git a/rule_filter/lib/converter/rule_id_nullable_converter.dart b/rule_filter/lib/rule_filter/converter/rule_id_nullable_converter.dart similarity index 89% rename from rule_filter/lib/converter/rule_id_nullable_converter.dart rename to rule_filter/lib/rule_filter/converter/rule_id_nullable_converter.dart index 409e18212..eb9b4b35e 100644 --- a/rule_filter/lib/converter/rule_id_nullable_converter.dart +++ b/rule_filter/lib/rule_filter/converter/rule_id_nullable_converter.dart @@ -1,7 +1,7 @@ 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'; -import 'package:rule_filter/rule_id.dart'; +import 'package:rule_filter/rule_filter/rule_id.dart'; class RuleIdNullableConverter implements JsonConverter { const RuleIdNullableConverter(); diff --git a/rule_filter/lib/get/get_rule_filter_method.dart b/rule_filter/lib/rule_filter/get/get_rule_filter_method.dart similarity index 87% rename from rule_filter/lib/get/get_rule_filter_method.dart rename to rule_filter/lib/rule_filter/get/get_rule_filter_method.dart index 6eb5310a0..cd6375329 100644 --- a/rule_filter/lib/get/get_rule_filter_method.dart +++ b/rule_filter/lib/rule_filter/get/get_rule_filter_method.dart @@ -7,9 +7,9 @@ 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:rule_filter/capability_rule_filter.dart'; -import 'package:rule_filter/converter/rule_id_converter.dart'; -import 'package:rule_filter/rule_id.dart'; +import 'package:rule_filter/rule_filter/capability_rule_filter.dart'; +import 'package:rule_filter/rule_filter/converter/rule_id_converter.dart'; +import 'package:rule_filter/rule_filter/rule_id.dart'; part 'get_rule_filter_method.g.dart'; diff --git a/rule_filter/lib/get/get_rule_filter_response.dart b/rule_filter/lib/rule_filter/get/get_rule_filter_response.dart similarity index 91% rename from rule_filter/lib/get/get_rule_filter_response.dart rename to rule_filter/lib/rule_filter/get/get_rule_filter_response.dart index 2df037d52..debf91a32 100644 --- a/rule_filter/lib/get/get_rule_filter_response.dart +++ b/rule_filter/lib/rule_filter/get/get_rule_filter_response.dart @@ -6,8 +6,8 @@ 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:rule_filter/rule_filter.dart'; -import 'package:rule_filter/tmail_rule.dart'; +import 'package:rule_filter/rule_filter/rule_filter.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; part 'get_rule_filter_response.g.dart'; diff --git a/rule_filter/lib/rule.dart b/rule_filter/lib/rule_filter/rule.dart similarity index 100% rename from rule_filter/lib/rule.dart rename to rule_filter/lib/rule_filter/rule.dart diff --git a/rule_filter/lib/rule_action.dart b/rule_filter/lib/rule_filter/rule_action.dart similarity index 89% rename from rule_filter/lib/rule_action.dart rename to rule_filter/lib/rule_filter/rule_action.dart index bc4a9b750..c0bec889a 100644 --- a/rule_filter/lib/rule_action.dart +++ b/rule_filter/lib/rule_filter/rule_action.dart @@ -1,6 +1,6 @@ import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/rule_append_in.dart'; +import 'package:rule_filter/rule_filter/rule_append_in.dart'; part 'rule_action.g.dart'; diff --git a/rule_filter/lib/rule_append_in.dart b/rule_filter/lib/rule_filter/rule_append_in.dart similarity index 81% rename from rule_filter/lib/rule_append_in.dart rename to rule_filter/lib/rule_filter/rule_append_in.dart index 26cc8f3bf..1b084c459 100644 --- a/rule_filter/lib/rule_append_in.dart +++ b/rule_filter/lib/rule_filter/rule_append_in.dart @@ -1,12 +1,14 @@ import 'package:equatable/equatable.dart'; import 'package:jmap_dart_client/http/converter/mailbox_id_converter.dart'; +import 'package:jmap_dart_client/http/converter/mailbox_id_nullable_converter.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:json_annotation/json_annotation.dart'; part 'rule_append_in.g.dart'; @MailboxIdConverter() -@JsonSerializable() +@MailboxIdNullableConverter() +@JsonSerializable(explicitToJson: true) class RuleAppendIn with EquatableMixin { final List mailboxIds; diff --git a/rule_filter/lib/rule_condition.dart b/rule_filter/lib/rule_filter/rule_condition.dart similarity index 100% rename from rule_filter/lib/rule_condition.dart rename to rule_filter/lib/rule_filter/rule_condition.dart diff --git a/rule_filter/lib/rule_filter.dart b/rule_filter/lib/rule_filter/rule_filter.dart similarity index 75% rename from rule_filter/lib/rule_filter.dart rename to rule_filter/lib/rule_filter/rule_filter.dart index 04229cb81..b28b4a567 100644 --- a/rule_filter/lib/rule_filter.dart +++ b/rule_filter/lib/rule_filter/rule_filter.dart @@ -1,8 +1,8 @@ import 'package:jmap_dart_client/jmap/core/filter/filter.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/converter/rule_filter_id_coverter.dart'; -import 'package:rule_filter/rule_filter_id.dart'; -import 'package:rule_filter/tmail_rule.dart'; +import 'package:rule_filter/rule_filter/converter/rule_filter_id_coverter.dart'; +import 'package:rule_filter/rule_filter/rule_filter_id.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; part 'rule_filter.g.dart'; diff --git a/rule_filter/lib/rule_filter_id.dart b/rule_filter/lib/rule_filter/rule_filter_id.dart similarity index 89% rename from rule_filter/lib/rule_filter_id.dart rename to rule_filter/lib/rule_filter/rule_filter_id.dart index 57abe32b1..a35c3edba 100644 --- a/rule_filter/lib/rule_filter_id.dart +++ b/rule_filter/lib/rule_filter/rule_filter_id.dart @@ -2,7 +2,7 @@ import 'package:equatable/equatable.dart'; import 'package:jmap_dart_client/http/converter/id_converter.dart'; import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/converter/rule_filter_id_coverter.dart'; +import 'package:rule_filter/rule_filter/converter/rule_filter_id_coverter.dart'; enum RuleFilterIdType { singleton('singleton'); diff --git a/rule_filter/lib/rule_id.dart b/rule_filter/lib/rule_filter/rule_id.dart similarity index 100% rename from rule_filter/lib/rule_id.dart rename to rule_filter/lib/rule_filter/rule_id.dart diff --git a/rule_filter/lib/set/set_rule_filter_method.dart b/rule_filter/lib/rule_filter/set/set_rule_filter_method.dart similarity index 93% rename from rule_filter/lib/set/set_rule_filter_method.dart rename to rule_filter/lib/rule_filter/set/set_rule_filter_method.dart index bd0f932fd..5977fd6b4 100644 --- a/rule_filter/lib/set/set_rule_filter_method.dart +++ b/rule_filter/lib/rule_filter/set/set_rule_filter_method.dart @@ -6,8 +6,8 @@ import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/method/request/set_method.dart'; import 'package:jmap_dart_client/jmap/core/request/request_invocation.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/capability_rule_filter.dart'; -import 'package:rule_filter/tmail_rule.dart'; +import 'package:rule_filter/rule_filter/capability_rule_filter.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; class SetRuleFilterMethod extends SetMethod> with OptionalUpdateRuleFilter>{ SetRuleFilterMethod(AccountId accountId) : super(accountId); diff --git a/rule_filter/lib/set/set_rule_filter_response.dart b/rule_filter/lib/rule_filter/set/set_rule_filter_response.dart similarity index 98% rename from rule_filter/lib/set/set_rule_filter_response.dart rename to rule_filter/lib/rule_filter/set/set_rule_filter_response.dart index d88fe6ebc..4c382a346 100644 --- a/rule_filter/lib/set/set_rule_filter_response.dart +++ b/rule_filter/lib/rule_filter/set/set_rule_filter_response.dart @@ -7,7 +7,7 @@ import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/method/response/set_response.dart'; import 'package:jmap_dart_client/jmap/core/state.dart'; -import 'package:rule_filter/tmail_rule.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; class SetRuleFilterResponse extends SetResponse { SetRuleFilterResponse( diff --git a/rule_filter/lib/tmail_rule.dart b/rule_filter/lib/rule_filter/tmail_rule.dart similarity index 69% rename from rule_filter/lib/tmail_rule.dart rename to rule_filter/lib/rule_filter/tmail_rule.dart index 114187f95..f6daa2dae 100644 --- a/rule_filter/lib/tmail_rule.dart +++ b/rule_filter/lib/rule_filter/tmail_rule.dart @@ -1,11 +1,10 @@ import 'package:jmap_dart_client/http/converter/id_converter.dart'; import 'package:json_annotation/json_annotation.dart'; -import 'package:rule_filter/converter/rule_id_converter.dart'; -import 'package:rule_filter/converter/rule_id_nullable_converter.dart'; -import 'package:rule_filter/rule.dart'; -import 'package:rule_filter/rule_action.dart'; -import 'package:rule_filter/rule_condition.dart'; -import 'package:rule_filter/rule_id.dart'; +import 'package:rule_filter/rule_filter/converter/rule_id_nullable_converter.dart'; +import 'package:rule_filter/rule_filter/rule.dart'; +import 'package:rule_filter/rule_filter/rule_action.dart'; +import 'package:rule_filter/rule_filter/rule_condition.dart'; +import 'package:rule_filter/rule_filter/rule_id.dart'; part 'tmail_rule.g.dart'; @@ -32,7 +31,6 @@ class TMailRule extends Rule { @override List get props => [ - id, name, condition, action, diff --git a/rule_filter/test/datasource/rule_filter_datasource_impl_test.dart b/rule_filter/test/datasource/rule_filter_datasource_impl_test.dart new file mode 100644 index 000000000..664179a05 --- /dev/null +++ b/rule_filter/test/datasource/rule_filter_datasource_impl_test.dart @@ -0,0 +1,61 @@ +import 'package:flutter_test/flutter_test.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/mail/mailbox/mailbox.dart'; +import 'package:mockito/mockito.dart'; +import 'package:mockito/annotations.dart'; +import 'package:rule_filter/data/datasource_impl/rule_filter_datasource_impl.dart'; +import 'package:rule_filter/data/network/rule_filter_api.dart'; +import 'package:rule_filter/rule_filter/rule_action.dart'; +import 'package:rule_filter/rule_filter/rule_append_in.dart'; +import 'package:rule_filter/rule_filter/rule_condition.dart'; +import 'package:rule_filter/rule_filter/rule_filter.dart'; +import 'package:rule_filter/rule_filter/rule_filter_id.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; + +import 'rule_filter_datasource_impl_test.mocks.dart'; + +@GenerateMocks([RuleFilterAPI]) +void main() { + final expectRuleFilter1 = RuleFilter( + id: RuleFilterIdSingleton.ruleFilterIdSingleton, + rules: [ + TMailRule( + name: 'My first rule', + condition: RuleCondition( + value: 'question', + comparator: Comparator.contains, + field: Field.subject, + ), + action: RuleAction( + appendIn: RuleAppendIn( + mailboxIds: [ + MailboxId(Id('42')), + ], + ), + ), + ) + ], + ); + + + group('rule_filter_datasource_impl_test', () { + late RuleFilterAPI _ruleFilterAPI; + late RuleFilterDataSourceImpl _ruleFilterDataSourceImpl; + + setUp(() { + _ruleFilterAPI = MockRuleFilterAPI(); + _ruleFilterDataSourceImpl = RuleFilterDataSourceImpl(_ruleFilterAPI); + }); + + test('getListTMailRule should return success with valid data', () async { + when(_ruleFilterAPI.getListTMailRule(AccountId(Id( + '0eacc7a5c74b27ab36a823bc5c34da36e16c093705f241d6ed5f48ee73a4ecfb')))) + .thenAnswer((_) async => expectRuleFilter1.rules); + + final result = await _ruleFilterDataSourceImpl.getListTMailRule(AccountId(Id( + '0eacc7a5c74b27ab36a823bc5c34da36e16c093705f241d6ed5f48ee73a4ecfb'))); + expect(result, expectRuleFilter1.rules); + }); + }); +} diff --git a/rule_filter/test/rule_filter/get_rule_filter_method_test.dart b/rule_filter/test/rule_filter/get_rule_filter_method_test.dart index 9f17e5635..4b5ddbc45 100644 --- a/rule_filter/test/rule_filter/get_rule_filter_method_test.dart +++ b/rule_filter/test/rule_filter/get_rule_filter_method_test.dart @@ -6,14 +6,14 @@ import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/jmap_request.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; -import 'package:rule_filter/get/get_rule_filter_method.dart'; -import 'package:rule_filter/get/get_rule_filter_response.dart'; -import 'package:rule_filter/rule_action.dart'; -import 'package:rule_filter/rule_append_in.dart'; -import 'package:rule_filter/rule_condition.dart'; -import 'package:rule_filter/rule_filter.dart'; -import 'package:rule_filter/rule_filter_id.dart'; -import 'package:rule_filter/tmail_rule.dart'; +import 'package:rule_filter/rule_filter/get/get_rule_filter_method.dart'; +import 'package:rule_filter/rule_filter/get/get_rule_filter_response.dart'; +import 'package:rule_filter/rule_filter/rule_action.dart'; +import 'package:rule_filter/rule_filter/rule_append_in.dart'; +import 'package:rule_filter/rule_filter/rule_condition.dart'; +import 'package:rule_filter/rule_filter/rule_filter.dart'; +import 'package:rule_filter/rule_filter/rule_filter_id.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; void main() { group('test to json get rule filter method', () { diff --git a/rule_filter/test/rule_filter/set_rule_filter_method_test.dart b/rule_filter/test/rule_filter/set_rule_filter_method_test.dart index 96ba2d82f..b9736fb1c 100644 --- a/rule_filter/test/rule_filter/set_rule_filter_method_test.dart +++ b/rule_filter/test/rule_filter/set_rule_filter_method_test.dart @@ -4,19 +4,16 @@ import 'package:http_mock_adapter/http_mock_adapter.dart'; import 'package:jmap_dart_client/http/http_client.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/identities/identity.dart'; -import 'package:jmap_dart_client/jmap/identities/set/set_identity_method.dart'; -import 'package:jmap_dart_client/jmap/identities/set/set_identity_response.dart'; import 'package:jmap_dart_client/jmap/jmap_request.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; -import 'package:rule_filter/rule_action.dart'; -import 'package:rule_filter/rule_append_in.dart'; -import 'package:rule_filter/rule_condition.dart'; -import 'package:rule_filter/rule_filter.dart'; -import 'package:rule_filter/rule_id.dart'; -import 'package:rule_filter/set/set_rule_filter_method.dart'; -import 'package:rule_filter/set/set_rule_filter_response.dart'; -import 'package:rule_filter/tmail_rule.dart'; +import 'package:rule_filter/rule_filter/rule_action.dart'; +import 'package:rule_filter/rule_filter/rule_append_in.dart'; +import 'package:rule_filter/rule_filter/rule_condition.dart'; +import 'package:rule_filter/rule_filter/rule_filter_id.dart'; +import 'package:rule_filter/rule_filter/rule_id.dart'; +import 'package:rule_filter/rule_filter/set/set_rule_filter_method.dart'; +import 'package:rule_filter/rule_filter/set/set_rule_filter_response.dart'; +import 'package:rule_filter/rule_filter/tmail_rule.dart'; void main() { group('test to json set identity method', () { @@ -114,7 +111,7 @@ void main() { final setRuleFilterMethod = SetRuleFilterMethod(AccountId(Id( '29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6'))) ..addUpdateRuleFilter({ - Id('singleton'): [ + Id(RuleFilterIdType.singleton.value): [ TMailRule( id: RuleId(id: Id('1')), name: 'My first rule',