From 987ea410c54fdcb941d1dc88f0235f77a0ffed6d Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 2 Dec 2025 09:45:29 +0700 Subject: [PATCH] feat: Implement get label changes --- .../batch_get_label_processing_mixin.dart | 103 +++++++++++++ lib/features/base/mixin/mail_api_mixin.dart | 23 +-- lib/features/base/mixin/session_mixin.dart | 41 ++++++ .../data/model/label_change_response.dart | 32 ++++ .../labels/data/network/label_api.dart | 137 +++++++++++++++++- lib/main/error/capability_validator.dart | 1 + 6 files changed, 314 insertions(+), 23 deletions(-) create mode 100644 lib/features/base/mixin/batch_get_label_processing_mixin.dart create mode 100644 lib/features/base/mixin/session_mixin.dart create mode 100644 lib/features/labels/data/model/label_change_response.dart diff --git a/lib/features/base/mixin/batch_get_label_processing_mixin.dart b/lib/features/base/mixin/batch_get_label_processing_mixin.dart new file mode 100644 index 000000000..b196d51c4 --- /dev/null +++ b/lib/features/base/mixin/batch_get_label_processing_mixin.dart @@ -0,0 +1,103 @@ +import 'dart:math' hide log; + +import 'package:core/utils/app_logger.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/core/session/session.dart'; +import 'package:jmap_dart_client/jmap/core/state.dart'; +import 'package:jmap_dart_client/jmap/jmap_request.dart'; +import 'package:labels/method/get/get_label_method.dart'; +import 'package:labels/method/get/get_label_response.dart'; +import 'package:labels/model/label.dart'; +import 'package:tmail_ui_user/features/base/mixin/handle_error_mixin.dart'; +import 'package:tmail_ui_user/features/base/mixin/session_mixin.dart'; + +mixin BatchGetLabelProcessingMixin on HandleSetErrorMixin, SessionMixin { + Future< + ({ + List