TF-3416 Persist preview EML content when make reload page action
This commit is contained in:
@@ -188,4 +188,10 @@ abstract class EmailRepository {
|
||||
Future<void> sharePreviewEmailEMLContent(String keyStored, String previewEMLContent);
|
||||
|
||||
Future<String> getPreviewEmailEMLContentShared(String keyStored);
|
||||
|
||||
Future<void> removePreviewEmailEMLContentShared(String keyStored);
|
||||
|
||||
Future<void> movePreviewEMLContentFromPersistentToMemory(String keyStored, String content);
|
||||
|
||||
Future<String> getPreviewEMLContentInMemory(String keyStored);
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class GettingPreviewEmailEMLContentShared extends LoadingState {}
|
||||
|
||||
class GetPreviewEmailEMLContentSharedSuccess extends UIState {
|
||||
|
||||
final String previewEMLContent;
|
||||
|
||||
GetPreviewEmailEMLContentSharedSuccess(this.previewEMLContent);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [previewEMLContent];
|
||||
}
|
||||
|
||||
class GetPreviewEmailEMLContentSharedFailure extends FeatureFailure {
|
||||
|
||||
GetPreviewEmailEMLContentSharedFailure(dynamic exception) : super(exception: exception);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class GettingPreviewEmailEMLContentShared extends LoadingState {}
|
||||
|
||||
class GetPreviewEmailEMLContentSharedSuccess extends UIState {
|
||||
|
||||
final String keyStored;
|
||||
final String previewEMLContent;
|
||||
|
||||
GetPreviewEmailEMLContentSharedSuccess(this.keyStored, this.previewEMLContent);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [keyStored, previewEMLContent];
|
||||
}
|
||||
|
||||
class GetPreviewEmailEMLContentSharedFailure extends FeatureFailure {
|
||||
final String? keyStored;
|
||||
|
||||
GetPreviewEmailEMLContentSharedFailure({
|
||||
this.keyStored,
|
||||
dynamic exception,
|
||||
}) : super(exception: exception);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [keyStored, exception];
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class GettingPreviewEMLContentInMemory extends LoadingState {}
|
||||
|
||||
class GetPreviewEMLContentInMemorySuccess extends UIState {
|
||||
final String previewEMLContent;
|
||||
|
||||
GetPreviewEMLContentInMemorySuccess(this.previewEMLContent);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [previewEMLContent];
|
||||
}
|
||||
|
||||
class GetPreviewEMLContentInMemoryFailure extends FeatureFailure {
|
||||
|
||||
GetPreviewEMLContentInMemoryFailure(dynamic exception) : super(exception: exception);
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class MovingPreviewEmailEMLContentFromPersistentToMemory extends LoadingState {}
|
||||
|
||||
class MovePreviewEmailEMLContentFromPersistentToMemorySuccess extends UIState {}
|
||||
|
||||
class MovePreviewEmailEMLContentFromPersistentToMemoryFailure extends FeatureFailure {
|
||||
|
||||
MovePreviewEmailEMLContentFromPersistentToMemoryFailure(dynamic exception) : super(exception: exception);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class RemovingPreviewEmailEMLContentShared extends LoadingState {}
|
||||
|
||||
class RemovePreviewEmailEMLContentSharedSuccess extends UIState {}
|
||||
|
||||
class RemovePreviewEmailEMLContentSharedFailure extends FeatureFailure {
|
||||
|
||||
RemovePreviewEmailEMLContentSharedFailure(dynamic exception) : super(exception: exception);
|
||||
}
|
||||
+6
-3
@@ -2,7 +2,7 @@ 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/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_preview_email_content_shared_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_preview_email_eml_content_shared_state.dart';
|
||||
|
||||
class GetPreviewEmailEMLContentSharedInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
@@ -16,9 +16,12 @@ class GetPreviewEmailEMLContentSharedInteractor {
|
||||
final previewEMLContent = await _emailRepository
|
||||
.getPreviewEmailEMLContentShared(keyStored);
|
||||
|
||||
yield Right<Failure, Success>(GetPreviewEmailEMLContentSharedSuccess(previewEMLContent));
|
||||
yield Right<Failure, Success>(GetPreviewEmailEMLContentSharedSuccess(keyStored, previewEMLContent));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(GetPreviewEmailEMLContentSharedFailure(e));
|
||||
yield Left<Failure, Success>(GetPreviewEmailEMLContentSharedFailure(
|
||||
keyStored: keyStored,
|
||||
exception: 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/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_preview_eml_content_in_memory_state.dart';
|
||||
|
||||
class GetPreviewEmlContentInMemoryInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
|
||||
const GetPreviewEmlContentInMemoryInteractor(this._emailRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(String keyStored) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(GettingPreviewEMLContentInMemory());
|
||||
final previewEMLContent = await _emailRepository.getPreviewEMLContentInMemory(keyStored);
|
||||
yield Right<Failure, Success>(GetPreviewEMLContentInMemorySuccess(previewEMLContent));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(GetPreviewEMLContentInMemoryFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
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/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/move_preview_eml_content_from_persistent_to_memory_state.dart';
|
||||
|
||||
class MovePreviewEmlContentFromPersistentToMemoryInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
|
||||
const MovePreviewEmlContentFromPersistentToMemoryInteractor(this._emailRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(String keyStored, String content) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(MovingPreviewEmailEMLContentFromPersistentToMemory());
|
||||
await Future.wait([
|
||||
_emailRepository.removePreviewEmailEMLContentShared(keyStored),
|
||||
_emailRepository.movePreviewEMLContentFromPersistentToMemory(keyStored, content),
|
||||
]);
|
||||
yield Right<Failure, Success>(MovePreviewEmailEMLContentFromPersistentToMemorySuccess());
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(MovePreviewEmailEMLContentFromPersistentToMemoryFailure(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/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/remove_preview_email_eml_content_shared_state.dart';
|
||||
|
||||
class RemovePreviewEmailEmlContentSharedInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
|
||||
const RemovePreviewEmailEmlContentSharedInteractor(this._emailRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(String keyStored) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(RemovingPreviewEmailEMLContentShared());
|
||||
await _emailRepository.removePreviewEmailEMLContentShared(keyStored);
|
||||
yield Right<Failure, Success>(RemovePreviewEmailEMLContentSharedSuccess());
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(RemovePreviewEmailEMLContentSharedFailure(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user