From a66b33472d3c878b2051922fb588c2d1c8ea2cf7 Mon Sep 17 00:00:00 2001 From: Dat PHAM HOANG Date: Tue, 26 Apr 2022 10:45:45 +0700 Subject: [PATCH] Use GetAllEmails instead of RefreshAll Interactor --- .../repository/thread_repository_impl.dart | 37 +------------ .../domain/repository/thread_repository.dart | 11 ---- ...resh_all_emails_in_mailbox_interactor.dart | 52 ------------------- .../thread/presentation/thread_bindings.dart | 7 +-- .../presentation/thread_controller.dart | 15 +----- 5 files changed, 4 insertions(+), 118 deletions(-) delete mode 100644 lib/features/thread/domain/usecases/refresh_all_emails_in_mailbox_interactor.dart diff --git a/lib/features/thread/data/repository/thread_repository_impl.dart b/lib/features/thread/data/repository/thread_repository_impl.dart index 0f3784ab9..e3e852ae4 100644 --- a/lib/features/thread/data/repository/thread_repository_impl.dart +++ b/lib/features/thread/data/repository/thread_repository_impl.dart @@ -189,6 +189,7 @@ class ThreadRepositoryImpl extends ThreadRepository { FilterMessageOption? filterOption, } ) async* { + log('ThreadRepositoryImpl::refreshChanges(): $currentState'); final localEmailList = await mapDataSource[DataSourceType.local]!.getAllEmailCache( inMailboxId: inMailboxId, sort: sort, @@ -289,42 +290,6 @@ class ThreadRepositoryImpl extends ThreadRepository { return emailResponse.emailList ?? List.empty(); } - @override - Stream refreshAll( - AccountId accountId, - { - UnsignedInt? limit, - Set? sort, - EmailFilter? emailFilter, - Properties? propertiesCreated, - Properties? propertiesUpdated, - } - ) async* { - EmailsResponse? networkEmailResponse = await mapDataSource[DataSourceType.network]!.getAllEmail( - accountId, - limit: limit, - sort: sort, - filter: emailFilter?.filter, - properties: propertiesCreated); - - await _updateEmailCache(newCreated: networkEmailResponse.emailList); - if (networkEmailResponse.state != null) { - await _updateState(networkEmailResponse.state!); - } - - final newEmailResponse = await Future.wait([ - mapDataSource[DataSourceType.local]!.getAllEmailCache( - inMailboxId: emailFilter?.mailboxId, - sort: sort, - filterOption: emailFilter?.filterOption), - stateDataSource.getState(StateType.email) - ]).then((List response) { - return EmailsResponse(emailList: response.first, state: response.last); - }); - - yield newEmailResponse; - } - @override Future emptyTrashFolder(AccountId accountId, MailboxId trashMailboxId) async { var finalResult = true; diff --git a/lib/features/thread/domain/repository/thread_repository.dart b/lib/features/thread/domain/repository/thread_repository.dart index bab1b7055..002557d3a 100644 --- a/lib/features/thread/domain/repository/thread_repository.dart +++ b/lib/features/thread/domain/repository/thread_repository.dart @@ -22,17 +22,6 @@ abstract class ThreadRepository { } ); - Stream refreshAll( - AccountId accountId, - { - UnsignedInt? limit, - Set? sort, - EmailFilter? emailFilter, - Properties? propertiesCreated, - Properties? propertiesUpdated, - } - ); - Stream refreshChanges( AccountId accountId, jmap.State currentState, diff --git a/lib/features/thread/domain/usecases/refresh_all_emails_in_mailbox_interactor.dart b/lib/features/thread/domain/usecases/refresh_all_emails_in_mailbox_interactor.dart deleted file mode 100644 index 93b6a5e66..000000000 --- a/lib/features/thread/domain/usecases/refresh_all_emails_in_mailbox_interactor.dart +++ /dev/null @@ -1,52 +0,0 @@ -import 'package:core/core.dart'; -import 'package:dartz/dartz.dart'; -import 'package:jmap_dart_client/jmap/account_id.dart'; -import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; -import 'package:jmap_dart_client/jmap/core/sort/comparator.dart'; -import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; -import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'; -import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'; -import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart'; -import 'package:model/model.dart'; - -class RefreshAllEmailsInMailboxInteractor { - final ThreadRepository threadRepository; - - RefreshAllEmailsInMailboxInteractor(this.threadRepository); - - Stream> execute( - AccountId accountId, - { - UnsignedInt? limit, - Set? sort, - EmailFilter? emailFilter, - Properties? propertiesCreated, - Properties? propertiesUpdated, - } - ) async* { - try { - yield Right(LoadingState()); - - yield* threadRepository - .refreshAll( - accountId, - limit: limit, - sort: sort, - emailFilter: emailFilter, - propertiesCreated: propertiesCreated, - propertiesUpdated: propertiesUpdated) - .map(_toGetEmailState); - } catch (e) { - yield Left(GetAllEmailFailure(e)); - } - } - - Either _toGetEmailState(EmailsResponse emailResponse) { - final presentationEmailList = emailResponse.emailList - ?.map((email) => email.toPresentationEmail()).toList() ?? List.empty(); - - return Right(GetAllEmailSuccess( - emailList: presentationEmailList, - currentEmailState: emailResponse.state)); - } -} \ No newline at end of file diff --git a/lib/features/thread/presentation/thread_bindings.dart b/lib/features/thread/presentation/thread_bindings.dart index bb1a9053f..81e88dcfc 100644 --- a/lib/features/thread/presentation/thread_bindings.dart +++ b/lib/features/thread/presentation/thread_bindings.dart @@ -11,8 +11,8 @@ import 'package:tmail_ui_user/features/email/data/network/email_api.dart'; import 'package:tmail_ui_user/features/email/data/repository/email_repository_impl.dart'; import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/delete_multiple_emails_permanently_interactor.dart'; -import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart'; +import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart'; import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.dart'; import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/state_datasource_impl.dart'; @@ -27,9 +27,8 @@ import 'package:tmail_ui_user/features/thread/domain/usecases/empty_trash_folder import 'package:tmail_ui_user/features/thread/domain/usecases/get_emails_in_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/load_more_emails_in_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/mark_as_multiple_email_read_interactor.dart'; -import 'package:tmail_ui_user/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/mark_as_star_multiple_email_interactor.dart'; -import 'package:tmail_ui_user/features/thread/domain/usecases/refresh_all_emails_in_mailbox_interactor.dart'; +import 'package:tmail_ui_user/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/search_email_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/search_more_email_interactor.dart'; @@ -41,7 +40,6 @@ class ThreadBindings extends BaseBindings { void bindingsController() { Get.put(ThreadController( Get.find(), - Get.find(), Get.find(), Get.find(), Get.find(), @@ -80,7 +78,6 @@ class ThreadBindings extends BaseBindings { @override void bindingsInteractor() { Get.lazyPut(() => GetEmailsInMailboxInteractor(Get.find())); - Get.lazyPut(() => RefreshAllEmailsInMailboxInteractor(Get.find())); Get.lazyPut(() => MarkAsEmailReadInteractor(Get.find())); Get.lazyPut(() => MarkAsMultipleEmailReadInteractor(Get.find())); Get.lazyPut(() => MoveToMailboxInteractor(Get.find())); diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index 4df4b782e..1242cf325 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -56,7 +56,6 @@ import 'package:tmail_ui_user/features/thread/domain/usecases/load_more_emails_i import 'package:tmail_ui_user/features/thread/domain/usecases/mark_as_multiple_email_read_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/mark_as_star_multiple_email_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/move_multiple_email_to_mailbox_interactor.dart'; -import 'package:tmail_ui_user/features/thread/domain/usecases/refresh_all_emails_in_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/search_email_interactor.dart'; import 'package:tmail_ui_user/features/thread/domain/usecases/search_more_email_interactor.dart'; @@ -75,7 +74,6 @@ class ThreadController extends BaseController { final _appToast = Get.find(); final GetEmailsInMailboxInteractor _getEmailsInMailboxInteractor; - final RefreshAllEmailsInMailboxInteractor _refreshAllEmailsInMailboxInteractor; final MarkAsMultipleEmailReadInteractor _markAsMultipleEmailReadInteractor; final MoveMultipleEmailToMailboxInteractor _moveMultipleEmailToMailboxInteractor; final MarkAsStarEmailInteractor _markAsStarEmailInteractor; @@ -112,7 +110,6 @@ class ThreadController extends BaseController { ThreadController( this._getEmailsInMailboxInteractor, - this._refreshAllEmailsInMailboxInteractor, this._markAsMultipleEmailReadInteractor, this._moveMultipleEmailToMailboxInteractor, this._markAsStarEmailInteractor, @@ -377,17 +374,7 @@ class ThreadController extends BaseController { cancelSelectEmail(); if (_accountId != null) { - consumeState(_refreshAllEmailsInMailboxInteractor.execute( - _accountId!, - limit: ThreadConstants.defaultLimit, - sort: _sortOrder, - emailFilter: EmailFilter( - filter: _getFilterCondition(), - filterOption: mailboxDashBoardController.filterMessageOption.value, - mailboxId: _currentMailboxId), - propertiesCreated: ThreadConstants.propertiesDefault, - propertiesUpdated: ThreadConstants.propertiesUpdatedDefault, - )); + _getAllEmail(); } }