TF-1667 Get spam mailbox cached
(cherry picked from commit 9abd6fc9c5c508499e7d3d9ed525ff57edaead31)
This commit is contained in:
@@ -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 {}
|
||||
Reference in New Issue
Block a user