TF-1808: Hanlde store email when opening email

(cherry picked from commit 2c895379f83b34e9bafb7545b21d790d01d444af)
This commit is contained in:
HuyNguyen
2023-05-11 17:27:42 +07:00
committed by Dat Vu
parent 28d75ce384
commit 63f375a29c
22 changed files with 215 additions and 95 deletions
@@ -94,5 +94,5 @@ abstract class EmailRepository {
Future<void> storeEmailToCache(Session session, AccountId accountId, Email email);
Future<void> storeOpenedEmailToCache(Session session, AccountId accountId, DetailedEmail detailedEmail);
Future<void> storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail);
}
@@ -1,12 +1,13 @@
import 'package:core/core.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
class StoreOpenedEmailToCacheLoading extends UIState {}
class StoreOpenedEmailLoading extends UIState {}
class StoreOpenedEmailToCacheSuccess extends UIState {}
class StoreOpenedEmailSuccess extends UIState {}
class StoreOpenedEmailToCacheFailure extends FeatureFailure {
class StoreOpenedEmailFailure extends FeatureFailure {
StoreOpenedEmailToCacheFailure(dynamic exception) : super(exception: exception);
StoreOpenedEmailFailure(dynamic exception) : super(exception: exception);
@override
List<Object?> get props => [exception];
@@ -18,11 +18,11 @@ class StoreOpenedEmailToCacheInteractor {
DetailedEmail detailedEmail
) async* {
try {
yield Right<Failure, Success>(StoreOpenedEmailToCacheLoading());
await _emailRepository.storeOpenedEmailToCache(session, accountId, detailedEmail);
yield Right<Failure, Success>(StoreOpenedEmailToCacheSuccess());
yield Right<Failure, Success>(StoreOpenedEmailLoading());
await _emailRepository.storeOpenedEmail(session, accountId, detailedEmail);
yield Right<Failure, Success>(StoreOpenedEmailSuccess());
} catch (e) {
yield Left<Failure, Success>(StoreOpenedEmailToCacheFailure(e));
yield Left<Failure, Success>(StoreOpenedEmailFailure(e));
}
}
}