TF-4236 Apply BatchSetEmailProcessingMixin for some method use SetEmailMethod

This commit is contained in:
dab246
2026-01-26 12:03:27 +07:00
committed by Dat H. Pham
parent e42cdf83b3
commit fe57e72a02
18 changed files with 193 additions and 193 deletions
@@ -5,6 +5,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
import 'package:tmail_ui_user/features/email/domain/state/add_a_label_to_a_thread_state.dart';
@@ -22,17 +23,30 @@ class AddALabelToAThreadInteractor {
) async* {
try {
yield Right(AddingALabelToAThread());
await _emailRepository.addLabelToThread(
final result = await _emailRepository.addLabelToThread(
session,
accountId,
emailIds,
labelKeyword,
);
yield Right(AddALabelToAThreadSuccess(
emailIds,
labelKeyword,
labelDisplay,
));
if (emailIds.length == result.emailIdsSuccess.length) {
yield Right(AddALabelToAThreadSuccess(
result.emailIdsSuccess,
labelKeyword,
labelDisplay,
));
} else if (result.emailIdsSuccess.isEmpty) {
yield Left(AddALabelToAThreadFailure(
exception: EmailIdListIsEmptyException(),
labelDisplay: labelDisplay,
));
} else {
yield Right(AddALabelToAThreadHasSomeFailure(
result.emailIdsSuccess,
labelKeyword,
labelDisplay,
));
}
} catch (e) {
yield Left(AddALabelToAThreadFailure(
exception: e,
@@ -5,6 +5,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:tmail_ui_user/features/email/domain/exceptions/email_exceptions.dart';
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
import 'package:tmail_ui_user/features/email/domain/state/labels/remove_a_label_from_a_thread_state.dart';
@@ -22,17 +23,30 @@ class RemoveALabelFromAThreadInteractor {
) async* {
try {
yield Right(RemovingALabelFromAThread());
await _emailRepository.removeLabelFromThread(
final result = await _emailRepository.removeLabelFromThread(
session,
accountId,
emailIds,
labelKeyword,
);
yield Right(RemoveALabelFromAThreadSuccess(
emailIds,
labelKeyword,
labelDisplay,
));
if (emailIds.length == result.emailIdsSuccess.length) {
yield Right(RemoveALabelFromAThreadSuccess(
result.emailIdsSuccess,
labelKeyword,
labelDisplay,
));
} else if (result.emailIdsSuccess.isEmpty) {
yield Left(RemoveALabelFromAThreadFailure(
exception: EmailIdListIsEmptyException(),
labelDisplay: labelDisplay,
));
} else {
yield Right(RemoveALabelFromAThreadHasSomeFailure(
result.emailIdsSuccess,
labelKeyword,
labelDisplay,
));
}
} catch (e) {
yield Left(RemoveALabelFromAThreadFailure(
exception: e,