TF-1362: [Domain] Get unreadSpamEmail in Usecase
This commit is contained in:
+21
-6
@@ -1,16 +1,20 @@
|
||||
import 'package:jmap_dart_client/jmap/account_id.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/data/datasource/spam_report_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/spam_report_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/share_preference_spam_report_data_source.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 LocalSpamReportDataSourceImpl extends SpamReportDataSource {
|
||||
final SpamReportCacheManager _spamReportCacheManager;
|
||||
final SharePreferenceSpamReportDataSource _sharePreferenceSpamReportDataSource;
|
||||
final ExceptionThrower _exceptionThrower;
|
||||
|
||||
LocalSpamReportDataSourceImpl(this._spamReportCacheManager, this._exceptionThrower);
|
||||
LocalSpamReportDataSourceImpl(this._sharePreferenceSpamReportDataSource, this._exceptionThrower);
|
||||
@override
|
||||
Future<DateTime> getLastTimeDismissedSpamReported() async {
|
||||
return Future.sync(() async {
|
||||
return await _spamReportCacheManager.getlastTimeDismissedSpamReported();
|
||||
return await _sharePreferenceSpamReportDataSource.getLastTimeDismissedSpamReported();
|
||||
}).catchError((error) {
|
||||
_exceptionThrower.throwException(error);
|
||||
});
|
||||
@@ -19,7 +23,7 @@ class LocalSpamReportDataSourceImpl extends SpamReportDataSource {
|
||||
@override
|
||||
Future<bool> storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) async {
|
||||
return Future.sync(() async {
|
||||
return await _spamReportCacheManager.storelastTimeDismissedSpamReported(lastTimeDismissedSpamReported);
|
||||
return await _sharePreferenceSpamReportDataSource.storeLastTimeDismissedSpamReported(lastTimeDismissedSpamReported);
|
||||
}).catchError((error) {
|
||||
_exceptionThrower.throwException(error);
|
||||
});
|
||||
@@ -28,9 +32,20 @@ class LocalSpamReportDataSourceImpl extends SpamReportDataSource {
|
||||
@override
|
||||
Future<bool> deleteLastTimeDismissedSpamReported() {
|
||||
return Future.sync(() async {
|
||||
return await _spamReportCacheManager.deleteLastTimeDismissedSpamReported();
|
||||
return await _sharePreferenceSpamReportDataSource.deleteLastTimeDismissedSpamReported();
|
||||
}).catchError((error) {
|
||||
_exceptionThrower.throwException(error);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UnreadSpamEmailsResponse> findNumberOfUnreadSpamEmails(
|
||||
AccountId accountId,
|
||||
{
|
||||
MailboxFilterCondition? mailboxFilterCondition,
|
||||
UnsignedInt? limit
|
||||
}
|
||||
) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/account_id.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/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/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<bool> deleteLastTimeDismissedSpamReported() {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<UnreadSpamEmailsResponse> findNumberOfUnreadSpamEmails(
|
||||
AccountId accountId,
|
||||
{
|
||||
MailboxFilterCondition? mailboxFilterCondition,
|
||||
UnsignedInt? limit
|
||||
}
|
||||
) {
|
||||
return Future.sync(() async {
|
||||
final _unreadSpamEmailsResponse = await _spamReportApi.findNumberOfUnreadSpamEmails(
|
||||
accountId, mailboxFilterCondition: mailboxFilterCondition, limit: limit);
|
||||
return _unreadSpamEmailsResponse;
|
||||
}).catchError((error) {
|
||||
_exceptionThrower.throwException(error);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<DateTime> getLastTimeDismissedSpamReported() {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> storeLastTimeDismissedSpamReported(DateTime lastTimeDismissedSpamReported) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user