TF-1362: [Domain] Store and Get lastTimeDismissedSpamRepirt in UseCase
This commit is contained in:
@@ -54,4 +54,8 @@ abstract class ThreadRepository {
|
||||
);
|
||||
|
||||
Future<PresentationEmail> getEmailById(AccountId accountId, EmailId emailId, {Properties? properties});
|
||||
|
||||
Future<void> storelastTimeDismissedSpamReport(DateTime lastTimeDismissedSpamReport);
|
||||
|
||||
Future<DateTime> getlastTimeDismissedSpamReport();
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class GetLastTimeDismissedSpamReportLoading extends UIState {}
|
||||
|
||||
class GetLastTimeDismissedSpamReportSuccess extends UIState {
|
||||
final DateTime lastTimeDismissedSpamReport;
|
||||
|
||||
GetLastTimeDismissedSpamReportSuccess(this.lastTimeDismissedSpamReport);
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class GetLastTimeDismissedSpamReportFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
GetLastTimeDismissedSpamReportFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class StoreLastTimeDismissedSpamReportLoading extends UIState {}
|
||||
|
||||
class StoreLastTimeDismissedSpamReportSuccess extends UIState {
|
||||
|
||||
StoreLastTimeDismissedSpamReportSuccess();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class StoreLastTimeDismissedSpamReportFailure extends FeatureFailure {
|
||||
final dynamic exception;
|
||||
|
||||
StoreLastTimeDismissedSpamReportFailure(this.exception);
|
||||
|
||||
@override
|
||||
List<Object> get props => [exception];
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/get_last_time_dismissed_spam_reported_state.dart';
|
||||
|
||||
class GetLastTimeDismissedSpamReportInteractor {
|
||||
final ThreadRepository _threadRepository;
|
||||
|
||||
GetLastTimeDismissedSpamReportInteractor(this._threadRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
DateTime lastTimeDismissedSpamReport) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(GetLastTimeDismissedSpamReportLoading());
|
||||
final lastTimeDismissedSpamReport = await _threadRepository.getlastTimeDismissedSpamReport();
|
||||
yield Right<Failure, Success>(
|
||||
GetLastTimeDismissedSpamReportSuccess(lastTimeDismissedSpamReport));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(GetLastTimeDismissedSpamReportFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/store_last_time_dismissed_spam_report_state.dart';
|
||||
|
||||
class StoreLastTimeDismissedSpamReportInteractor {
|
||||
final ThreadRepository _threadRepository;
|
||||
|
||||
StoreLastTimeDismissedSpamReportInteractor(this._threadRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(DateTime lastTimeDismissedSpamReport) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(StoreLastTimeDismissedSpamReportLoading());
|
||||
await _threadRepository.storelastTimeDismissedSpamReport(lastTimeDismissedSpamReport);
|
||||
yield Right<Failure, Success>(StoreLastTimeDismissedSpamReportSuccess());
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(StoreLastTimeDismissedSpamReportFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user