diff --git a/lib/features/mailbox/data/local/mailbox_cache_manager.dart b/lib/features/mailbox/data/local/mailbox_cache_manager.dart index 9d3c3578b..87bfcc3f3 100644 --- a/lib/features/mailbox/data/local/mailbox_cache_manager.dart +++ b/lib/features/mailbox/data/local/mailbox_cache_manager.dart @@ -1,10 +1,12 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; +import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart'; import 'package:tmail_ui_user/features/mailbox/data/extensions/list_mailbox_cache_extension.dart'; import 'package:tmail_ui_user/features/mailbox/data/extensions/mailbox_cache_extension.dart'; import 'package:tmail_ui_user/features/mailbox/data/extensions/mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_cache.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart'; class MailboxCacheManager { @@ -38,4 +40,18 @@ class MailboxCacheManager { await _mailboxCacheClient.insertMultipleItem(createdCacheMailboxes.toMap()); } } + + Future getSpamMailbox() async { + final mailboxCachedList = await _mailboxCacheClient.getAll(); + final listSpamMailboxCached = mailboxCachedList + .map((mailboxCached) => mailboxCached.toMailbox()) + .where((mailbox) => mailbox.role == PresentationMailbox.roleSpam) + .toList(); + + if (listSpamMailboxCached.isNotEmpty) { + return listSpamMailboxCached.first; + } else { + throw NotFoundSpamMailboxCachedException(); + } + } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart b/lib/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart index 344665221..81401e11a 100644 --- a/lib/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart +++ b/lib/features/mailbox_dashboard/domain/exceptions/spam_report_exception.dart @@ -1,2 +1,4 @@ -class NotFoundLastTimeDismissedSpamReportException implements Exception {} \ No newline at end of file +class NotFoundLastTimeDismissedSpamReportException implements Exception {} + +class NotFoundSpamMailboxCachedException implements Exception {} \ No newline at end of file