TF-1363: [Domain] [Domain] Store, Get, Delete spamReportState in UseCase

This commit is contained in:
HuyNguyen
2023-01-16 12:39:39 +07:00
committed by Dat H. Pham
parent d5b61a2a7d
commit a3dae605a4
13 changed files with 237 additions and 7 deletions
@@ -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/mailbox_dashboard/domain/repository/spam_report_repository.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/delete_last_time_dismissed_spam_reported_state.dart';
class DeleteLastTimeDismissedSpamReportedInteractor {
final SpamReportRepository _spamReportRepository;
DeleteLastTimeDismissedSpamReportedInteractor(this._spamReportRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right<Failure, Success>(DeleteLastTimeDismissedSpamReportedLoading());
await _spamReportRepository.deleteLastTimeDismissedSpamReported();
yield Right<Failure, Success>(DeleteLastTimeDismissedSpamReportedSuccess());
} catch (e) {
yield Left<Failure, Success>(DeleteLastTimeDismissedSpamReportedFailure(e));
}
}
}
@@ -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/mailbox_dashboard/domain/repository/spam_report_repository.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/delete_spam_report_state.dart';
class DeleteSpamReportStateInteractor {
final SpamReportRepository _spamReportRepository;
DeleteSpamReportStateInteractor(this._spamReportRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right<Failure, Success>(DeleteSpamReportStateLoading());
await _spamReportRepository.deletestoreSpamReportState();
yield Right<Failure, Success>(DeleteSpamReportStateSuccess());
} catch (e) {
yield Left<Failure, Success>(DeleteSpamReportStateFailure(e));
}
}
}
@@ -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/mailbox_dashboard/domain/repository/spam_report_repository.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_spam_report_state.dart';
class StoreSpamReportStateInteractor {
final SpamReportRepository _spamReportRepository;
StoreSpamReportStateInteractor(this._spamReportRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right<Failure, Success>(GetSpamReportStateLoading());
final spamReportState = await _spamReportRepository.getSpamReportState();
yield Right<Failure, Success>(GetSpamReportStateSuccess(spamReportState));
} catch (e) {
yield Left<Failure, Success>(GetSpamReportStateFailure(e));
}
}
}
@@ -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/mailbox_dashboard/domain/model/spam_report_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/spam_report_repository.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/store_spam_report_state.dart';
class StoreSpamReportStateInteractor {
final SpamReportRepository _spamReportRepository;
StoreSpamReportStateInteractor(this._spamReportRepository);
Stream<Either<Failure, Success>> execute(SpamReportState spamReportState) async* {
try {
yield Right<Failure, Success>(StoreSpamReportStateLoading());
await _spamReportRepository.storeSpamReportState(spamReportState);
yield Right<Failure, Success>(StoreSpamReportStateSuccess());
} catch (e) {
yield Left<Failure, Success>(StoreSpamReportStateFailure(e));
}
}
}