TF-1362: [Data] Implement store and get LastTimeDismissedSpamReport in repository and datasource

This commit is contained in:
HuyNguyen
2023-01-07 00:52:29 +07:00
committed by Dat Vu
parent dadd7d005a
commit 6030aec159
19 changed files with 222 additions and 114 deletions
@@ -54,8 +54,4 @@ abstract class ThreadRepository {
);
Future<PresentationEmail> getEmailById(AccountId accountId, EmailId emailId, {Properties? properties});
Future<void> storelastTimeDismissedSpamReport(DateTime lastTimeDismissedSpamReport);
Future<DateTime> getlastTimeDismissedSpamReport();
}
@@ -1,22 +0,0 @@
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];
}
@@ -1,21 +0,0 @@
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];
}
@@ -1,23 +0,0 @@
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));
}
}
}
@@ -1,21 +0,0 @@
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));
}
}
}