TF-437 Delete state change of mailbox after invoke refresh change in background/terminated

This commit is contained in:
dab246
2022-11-30 12:13:06 +07:00
committed by Dat H. Pham
parent b37de97d6b
commit 32bb7c9796
4 changed files with 62 additions and 4 deletions
@@ -0,0 +1,22 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
class DeleteMailboxStateToRefreshLoading extends UIState {}
class DeleteMailboxStateToRefreshSuccess extends UIState {
DeleteMailboxStateToRefreshSuccess();
@override
List<Object> get props => [];
}
class DeleteMailboxStateToRefreshFailure extends FeatureFailure {
final dynamic exception;
DeleteMailboxStateToRefreshFailure(this.exception);
@override
List<Object> get props => [exception];
}
@@ -10,10 +10,10 @@ class DeleteEmailStateToRefreshInteractor {
DeleteEmailStateToRefreshInteractor(this._fcmRepository);
Stream<Either<Failure, Success>> execute(TypeName typeName) async* {
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right<Failure, Success>(DeleteEmailStateToRefreshLoading());
await _fcmRepository.deleteStateToRefresh(typeName);
await _fcmRepository.deleteStateToRefresh(TypeName.emailType);
yield Right<Failure, Success>(DeleteEmailStateToRefreshSuccess());
} catch (e) {
yield Left<Failure, Success>(DeleteEmailStateToRefreshFailure(e));
@@ -0,0 +1,22 @@
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:fcm/model/type_name.dart';
import 'package:tmail_ui_user/features/push_notification/domain/repository/fcm_repository.dart';
import 'package:tmail_ui_user/features/push_notification/domain/state/delete_mailbox_state_to_refresh_state.dart';
class DeleteMailboxStateToRefreshInteractor {
final FCMRepository _fcmRepository;
DeleteMailboxStateToRefreshInteractor(this._fcmRepository);
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right<Failure, Success>(DeleteMailboxStateToRefreshLoading());
await _fcmRepository.deleteStateToRefresh(TypeName.mailboxType);
yield Right<Failure, Success>(DeleteMailboxStateToRefreshSuccess());
} catch (e) {
yield Left<Failure, Success>(DeleteMailboxStateToRefreshFailure(e));
}
}
}