From 091d52e63513763069c2ee4d1dede09d3a82dec9 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 19 Dec 2024 16:51:30 +0700 Subject: [PATCH] TF-3333 Remove `Mailbox/query` & `Mailbox/get` when performing display spam banner --- .../spam_report_datasource_impl.dart | 73 ------------------- .../data/network/spam_report_api.dart | 60 --------------- .../spam_report_repository_impl.dart | 20 ----- .../repository/spam_report_repository.dart | 13 ---- ...et_number_of_unread_spam_emails_state.dart | 21 ------ .../state/get_spam_mailbox_cached_state.dart | 4 +- .../get_spam_mailbox_cached_interactor.dart | 1 - .../get_unread_spam_mailbox_interactor.dart | 56 -------------- .../bindings/mailbox_dashboard_bindings.dart | 13 ---- .../mailbox_dashboard_controller.dart | 20 +++-- .../controller/spam_report_controller.dart | 28 ++----- .../bindings/network/network_bindings.dart | 2 - 12 files changed, 25 insertions(+), 286 deletions(-) delete mode 100644 lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart delete mode 100644 lib/features/mailbox_dashboard/data/network/spam_report_api.dart delete mode 100644 lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart delete mode 100644 lib/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart diff --git a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart b/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart deleted file mode 100644 index d57d9799d..000000000 --- a/lib/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart +++ /dev/null @@ -1,73 +0,0 @@ - -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/core/unsigned_int.dart'; -import 'package:jmap_dart_client/jmap/core/user_name.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; -import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart'; - -class SpamReportDataSourceImpl extends SpamReportDataSource { - final SpamReportApi _spamReportApi; - final ExceptionThrower _exceptionThrower; - - SpamReportDataSourceImpl(this._spamReportApi, this._exceptionThrower); - - @override - Future deleteLastTimeDismissedSpamReported() { - throw UnimplementedError(); - } - - @override - Future findNumberOfUnreadSpamEmails( - Session session, - AccountId accountId, - { - MailboxFilterCondition? mailboxFilterCondition, - UnsignedInt? limit - } - ) { - return Future.sync(() async { - final unreadSpamEmailsResponse = await _spamReportApi.getUnreadSpamEmailbox( - session, - accountId, - mailboxFilterCondition: mailboxFilterCondition, - limit: limit); - return unreadSpamEmailsResponse; - }).catchError(_exceptionThrower.throwException); - } - - @override - Future getLastTimeDismissedSpamReported() { - throw UnimplementedError(); - } - - @override - Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) { - throw UnimplementedError(); - } - - @override - Future deleteSpamReportState() { - throw UnimplementedError(); - } - - @override - Future getSpamReportState() { - throw UnimplementedError(); - } - - @override - Future storeSpamReportState(SpamReportState spamReportState) { - throw UnimplementedError(); - } - - @override - Future getSpamMailboxCached(AccountId accountId, UserName userName) { - throw UnimplementedError(); - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/network/spam_report_api.dart b/lib/features/mailbox_dashboard/data/network/spam_report_api.dart deleted file mode 100644 index 06caecadb..000000000 --- a/lib/features/mailbox_dashboard/data/network/spam_report_api.dart +++ /dev/null @@ -1,60 +0,0 @@ -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/request/reference_path.dart'; -import 'package:jmap_dart_client/jmap/core/session/session.dart'; -import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; -import 'package:jmap_dart_client/jmap/jmap_request.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/get/get_mailbox_method.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/get/get_mailbox_response.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/query/query_mailbox_method.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; -import 'package:tmail_ui_user/main/error/capability_validator.dart'; - -class SpamReportApi { - final HttpClient _httpClient; - static const int _deafaultLimit = 1; - - SpamReportApi(this._httpClient); - - Future getUnreadSpamEmailbox( - Session session, - AccountId accountId, - { - MailboxFilterCondition? mailboxFilterCondition, - UnsignedInt? limit - } - ) async { - final processingInvocation = ProcessingInvocation(); - final requestBuilder = JmapRequestBuilder(_httpClient, processingInvocation); - final spamReportQueryMethod = QueryMailboxMethod(accountId)..addLimit(limit ?? UnsignedInt(_deafaultLimit)); - - if(mailboxFilterCondition != null) spamReportQueryMethod.addFilters(mailboxFilterCondition); - - final spamReportQueryMethodInvocation = requestBuilder.invocation(spamReportQueryMethod); - final getMailBoxMethod = GetMailboxMethod(accountId) - ..addReferenceIds(processingInvocation.createResultReference( - spamReportQueryMethodInvocation.methodCallId, - ReferencePath.idsPath, - )); - final getMailboxInvocation = requestBuilder.invocation(getMailBoxMethod); - - final capabilities = getMailBoxMethod.requiredCapabilities - .toCapabilitiesSupportTeamMailboxes(session, accountId); - - final result = await (requestBuilder - ..usings(capabilities)) - .build() - .execute(); - - final mailboxResponse = result - .parse(getMailboxInvocation.methodCallId, GetMailboxResponse.deserialize); - - if (mailboxResponse?.list.isNotEmpty == true) { - return UnreadSpamEmailsResponse(unreadSpamMailbox: mailboxResponse!.list.first); - } else { - throw NotFoundSpamMailboxException(); - } - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart b/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart index d1732e7e4..fe13707c0 100644 --- a/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart +++ b/lib/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart @@ -1,13 +1,9 @@ import 'package:core/data/model/source_type/data_source_type.dart'; 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/core/unsigned_int.dart'; import 'package:jmap_dart_client/jmap/core/user_name.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart'; class SpamReportRepositoryImpl extends SpamReportRepository { @@ -30,22 +26,6 @@ class SpamReportRepositoryImpl extends SpamReportRepository { return mapDataSource[DataSourceType.local]!.deleteLastTimeDismissedSpamReported(); } - @override - Future getUnreadSpamMailbox( - Session session, - AccountId accountId, - { - MailboxFilterCondition? mailboxFilterCondition, - UnsignedInt? limit - } - ) { - return mapDataSource[DataSourceType.network]!.findNumberOfUnreadSpamEmails( - session, - accountId, - mailboxFilterCondition: mailboxFilterCondition, - limit: limit); - } - @override Future getSpamReportState() async { return await mapDataSource[DataSourceType.local]!.getSpamReportState(); diff --git a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart index b1e17290b..edabee51e 100644 --- a/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart +++ b/lib/features/mailbox_dashboard/domain/repository/spam_report_repository.dart @@ -1,11 +1,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/core/unsigned_int.dart'; import 'package:jmap_dart_client/jmap/core/user_name.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/unread_spam_emails_response.dart'; abstract class SpamReportRepository { Future storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported); @@ -14,15 +10,6 @@ abstract class SpamReportRepository { Future deleteLastTimeDismissedSpamReported(); - Future getUnreadSpamMailbox( - Session session, - AccountId accountId, - { - MailboxFilterCondition? mailboxFilterCondition, - UnsignedInt? limit - } - ); - Future getSpamReportState(); Future storeSpamReportState(SpamReportState spamReportState); diff --git a/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart b/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart deleted file mode 100644 index 0dceb7141..000000000 --- a/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:core/presentation/state/failure.dart'; -import 'package:core/presentation/state/success.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; - -class GetUnreadSpamMailboxLoading extends UIState {} - -class GetUnreadSpamMailboxSuccess extends UIState { - final Mailbox unreadSpamMailbox; - - GetUnreadSpamMailboxSuccess(this.unreadSpamMailbox); - - @override - List get props => [unreadSpamMailbox]; -} - -class InvalidSpamReportCondition extends FeatureFailure {} - -class GetUnreadSpamMailboxFailure extends FeatureFailure { - - GetUnreadSpamMailboxFailure(dynamic exception) : super(exception: exception); -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart b/lib/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart index d03094bf1..f256506a1 100644 --- a/lib/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart +++ b/lib/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart @@ -17,4 +17,6 @@ class GetSpamMailboxCachedSuccess extends UIState { class GetSpamMailboxCachedFailure extends FeatureFailure { GetSpamMailboxCachedFailure(exception) : super(exception: exception); -} \ No newline at end of file +} + +class InvalidSpamReportCondition extends FeatureFailure {} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart index c180b6211..89fb99857 100644 --- a/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart +++ b/lib/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart @@ -6,7 +6,6 @@ import 'package:dartz/dartz.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/user_name.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart'; class GetSpamMailboxCachedInteractor { diff --git a/lib/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart b/lib/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart deleted file mode 100644 index 33776105d..000000000 --- a/lib/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart +++ /dev/null @@ -1,56 +0,0 @@ - -import 'package:core/presentation/state/failure.dart'; -import 'package:core/presentation/state/success.dart'; -import 'package:core/utils/app_logger.dart'; -import 'package:dartz/dartz.dart'; -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/core/unsigned_int.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart'; - -class GetUnreadSpamMailboxInteractor { - final SpamReportRepository _spamReportRepository; - - GetUnreadSpamMailboxInteractor(this._spamReportRepository); - - Stream> execute( - Session session, - AccountId accountId, - { - UnsignedInt? limit, - MailboxFilterCondition? mailboxFilterCondition, - } - ) async* { - try { - yield Right(GetUnreadSpamMailboxLoading()); - if (await _validateIntervalToShowBanner()) { - final response = await _spamReportRepository.getUnreadSpamMailbox( - session, - accountId, - mailboxFilterCondition: mailboxFilterCondition, - limit: limit); - final unreadSpamMailbox = response.unreadSpamMailbox; - - if (unreadSpamMailbox!.unreadEmails!.value.value > 0) { - yield Right(GetUnreadSpamMailboxSuccess(unreadSpamMailbox)); - } else { - yield Left(InvalidSpamReportCondition()); - } - } else { - yield Left(InvalidSpamReportCondition()); - } - } catch (e) { - yield Left(GetUnreadSpamMailboxFailure(e)); - } - } - - Future _validateIntervalToShowBanner() async { - final lastTimeDismissedSpamReported = await _spamReportRepository.getLastTimeDismissedSpamReported(); - final currentTime = DateTime.now().difference(lastTimeDismissedSpamReported); - log('GetUnreadSpamMailboxInteractor::_compareSpamReportTime:lastTimeDismissedSpamReported: $lastTimeDismissedSpamReported | currentTime: $currentTime'); - return currentTime.inHours > GetSpamMailboxCachedInteractor.spamReportBannerDisplayIntervalInHour; - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart index 57dbd600a..1f7c0a782 100644 --- a/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart +++ b/lib/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart @@ -52,14 +52,11 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_r import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_bindings.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/search_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/session_storage_composer_datasource.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource/spam_report_datasource.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/hive_spam_report_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/local_spam_report_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/search_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/session_storage_composer_datasoure_impl.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/spam_report_datasource_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/local_spam_report_manager.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/search_repository_impl.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/spam_report_repository_impl.dart'; @@ -71,7 +68,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_app import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_report_state_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_email_drafts_interactor.dart'; @@ -153,7 +149,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.put(SpamReportController( Get.find(), - Get.find(), Get.find(), Get.find(), Get.find())); @@ -198,7 +193,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut( @@ -244,10 +238,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => SessionStorageComposerDatasourceImpl( Get.find(), Get.find())); - Get.lazyPut(() => SpamReportDataSourceImpl( - Get.find(), - Get.find(), - )); Get.lazyPut(() => LocalSpamReportDataSourceImpl( Get.find(), Get.find(), @@ -306,8 +296,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.find())); Get.lazyPut(() => StoreSpamReportInteractor( Get.find())); - Get.lazyPut(() => GetUnreadSpamMailboxInteractor( - Get.find())); Get.lazyPut(() => StoreSpamReportStateInteractor( Get.find())); Get.lazyPut(() => GetSpamReportStateInteractor( @@ -376,7 +364,6 @@ class MailboxDashBoardBindings extends BaseBindings { Get.lazyPut(() => ComposerCacheRepositoryImpl(Get.find())); Get.lazyPut(() => SpamReportRepositoryImpl( { - DataSourceType.network: Get.find(), DataSourceType.local: Get.find(), DataSourceType.hiveCache: Get.find() }, diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index a288c35ad..4af181a92 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -2112,15 +2112,25 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo bool get enableSpamReport => spamReportController.enableSpamReport; void getSpamReportBanner() { - if (spamReportController.enableSpamReport && - sessionCurrent != null && - accountId.value != null) { - spamReportController.getSpamMailboxAction(sessionCurrent!, accountId.value!); + if (enableSpamReport) { + final spamId = spamMailboxId; + if (spamId == null) { + spamReportController.setSpamPresentationMailbox(null); + return; + } + + final spamMailbox = mapMailboxById[spamId]; + final unreadEmails = spamMailbox?.unreadEmails?.value.value ?? 0; + if (unreadEmails > 0) { + spamReportController.setSpamPresentationMailbox(spamMailbox); + } else { + spamReportController.setSpamPresentationMailbox(null); + } } } void refreshSpamReportBanner() { - if (spamReportController.enableSpamReport && sessionCurrent != null && accountId.value != null) { + if (enableSpamReport && sessionCurrent != null && accountId.value != null) { spamReportController.getSpamMailboxCached(accountId.value!, sessionCurrent!.username); } } diff --git a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart index 418a88269..7f8283cc8 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart @@ -3,31 +3,25 @@ import 'package:core/presentation/state/success.dart'; import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; 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/core/user_name.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; -import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_filter_condition.dart'; import 'package:model/extensions/mailbox_extension.dart'; import 'package:model/extensions/presentation_mailbox_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_mailbox_cached_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_report_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_last_time_dismissed_spam_reported_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_spam_report_state.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_report_state_interactor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_unread_spam_mailbox_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_spam_report_state_interactor.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; class SpamReportController extends BaseController { final StoreSpamReportInteractor _storeSpamReportInteractor; - final GetUnreadSpamMailboxInteractor _getNumberOfUnreadSpamEmailsInteractor; final StoreSpamReportStateInteractor _storeSpamReportStateInteractor; final GetSpamReportStateInteractor _getSpamReportStateInteractor; final GetSpamMailboxCachedInteractor _getSpamMailboxCachedInteractor; @@ -37,7 +31,6 @@ class SpamReportController extends BaseController { SpamReportController( this._storeSpamReportInteractor, - this._getNumberOfUnreadSpamEmailsInteractor, this._storeSpamReportStateInteractor, this._getSpamReportStateInteractor, this._getSpamMailboxCachedInteractor @@ -46,9 +39,7 @@ class SpamReportController extends BaseController { @override void handleSuccessViewState(Success success) { super.handleSuccessViewState(success); - if (success is GetUnreadSpamMailboxSuccess){ - presentationSpamMailbox.value = success.unreadSpamMailbox.toPresentationMailbox(); - } else if (success is StoreLastTimeDismissedSpamReportSuccess) { + if (success is StoreLastTimeDismissedSpamReportSuccess) { presentationSpamMailbox.value = null; } else if (success is GetSpamReportStateSuccess) { spamReportState.value = success.spamReportState; @@ -62,9 +53,7 @@ class SpamReportController extends BaseController { @override void handleFailureViewState(Failure failure) { super.handleFailureViewState(failure); - if (failure is GetUnreadSpamMailboxFailure || - failure is GetSpamMailboxCachedFailure || - failure is InvalidSpamReportCondition) { + if (failure is GetSpamMailboxCachedFailure) { presentationSpamMailbox.value = null; } } @@ -91,13 +80,6 @@ class SpamReportController extends BaseController { } } - void getSpamMailboxAction(Session session, AccountId accountId) { - consumeState(_getNumberOfUnreadSpamEmailsInteractor.execute( - session, - accountId, - mailboxFilterCondition: MailboxFilterCondition(role: Role('Spam')))); - } - void getSpamMailboxCached(AccountId accountId, UserName userName) { consumeState(_getSpamMailboxCachedInteractor.execute(accountId, userName)); } @@ -121,6 +103,10 @@ class SpamReportController extends BaseController { } void getSpamReportStateAction() { - consumeState(_getSpamReportStateInteractor.execute()); + consumeState(_getSpamReportStateInteractor.execute()); + } + + void setSpamPresentationMailbox(PresentationMailbox? spamMailbox) { + presentationSpamMailbox.value = spamMailbox; } } diff --git a/lib/main/bindings/network/network_bindings.dart b/lib/main/bindings/network/network_bindings.dart index ce115afe9..10a8bdf1e 100644 --- a/lib/main/bindings/network/network_bindings.dart +++ b/lib/main/bindings/network/network_bindings.dart @@ -26,7 +26,6 @@ import 'package:tmail_ui_user/features/login/data/utils/library_platform/app_aut import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart'; import 'package:tmail_ui_user/features/mailbox/data/local/state_cache_manager.dart'; import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart'; import 'package:tmail_ui_user/features/manage_account/data/network/forwarding_api.dart'; import 'package:tmail_ui_user/features/manage_account/data/network/identity_api.dart'; import 'package:tmail_ui_user/features/manage_account/data/network/rule_filter_api.dart'; @@ -123,7 +122,6 @@ class NetworkBindings extends Bindings { Get.put(ForwardingAPI(Get.find())); Get.put(QuotasAPI(Get.find())); Get.put(FcmApi(Get.find())); - Get.put(SpamReportApi(Get.find())); Get.put(ServerSettingsAPI(Get.find())); Get.put(WebSocketApi(Get.find())); }