From 618fd9b64e6aa2d54412eeaf3a460fcf395bdfe7 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 5 Apr 2023 15:28:09 +0700 Subject: [PATCH] TF-1667 Get spam mailbox cached (cherry picked from commit 9abd6fc9c5c508499e7d3d9ed525ff57edaead31) --- .../data/local/mailbox_cache_manager.dart | 16 ++++++++++++++++ .../domain/exceptions/spam_report_exception.dart | 4 +++- 2 files changed, 19 insertions(+), 1 deletion(-) 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