TF-1594 Move SendEmailInteractor to MailboxDashboardController to handle async send email

(cherry picked from commit 63aec51a6ea6e827ea924e91a13ec78d7f48edf7)
This commit is contained in:
dab246
2023-03-15 15:06:59 +07:00
committed by Dat Vu
parent ee91963e53
commit fe05df3477
5 changed files with 54 additions and 42 deletions
@@ -24,9 +24,11 @@ import 'package:rxdart/transformers.dart';
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_email_method_exception.dart';
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_bindings.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
@@ -45,6 +47,7 @@ import 'package:tmail_ui_user/features/email/presentation/model/composer_argumen
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/update_authentication_account_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
@@ -134,6 +137,7 @@ class MailboxDashBoardController extends ReloadableController {
final EmptyTrashFolderInteractor _emptyTrashFolderInteractor;
final DeleteMultipleEmailsPermanentlyInteractor _deleteMultipleEmailsPermanentlyInteractor;
final GetEmailByIdInteractor _getEmailByIdInteractor;
final SendEmailInteractor _sendEmailInteractor;
GetAllVacationInteractor? _getAllVacationInteractor;
UpdateVacationInteractor? _updateVacationInteractor;
@@ -200,6 +204,7 @@ class MailboxDashBoardController extends ReloadableController {
this._emptyTrashFolderInteractor,
this._deleteMultipleEmailsPermanentlyInteractor,
this._getEmailByIdInteractor,
this._sendEmailInteractor
) : super(
getAuthenticatedAccountInteractor,
updateAuthenticationAccountInteractor
@@ -261,7 +266,6 @@ class MailboxDashBoardController extends ReloadableController {
currentOverlayContext!,
message: AppLocalizations.of(currentContext!).your_email_being_sent,
icon: _imagePaths.icSendToast,
delayTime: const Duration(seconds: 1),
);
}
} else if (success is GetEmailStateToRefreshSuccess) {
@@ -1670,6 +1674,18 @@ class MailboxDashBoardController extends ReloadableController {
clearState();
}
void handleSendEmailAction(
AccountId accountId,
EmailRequest emailRequest,
CreateNewMailboxRequest? mailboxRequest
) {
consumeState(_sendEmailInteractor.execute(
accountId,
emailRequest,
mailboxRequest: mailboxRequest
));
}
@override
void onClose() {