TF-1667 Get spam mailbox cached

(cherry picked from commit 9abd6fc9c5c508499e7d3d9ed525ff57edaead31)
This commit is contained in:
dab246
2023-04-05 15:28:09 +07:00
committed by Dat Vu
parent 758c14fb72
commit 618fd9b64e
2 changed files with 19 additions and 1 deletions
@@ -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<Mailbox> 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();
}
}
}
@@ -1,2 +1,4 @@
class NotFoundLastTimeDismissedSpamReportException implements Exception {}
class NotFoundLastTimeDismissedSpamReportException implements Exception {}
class NotFoundSpamMailboxCachedException implements Exception {}