TF-3480 Handle reopen multiple composer when reload page or session expired
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -10,11 +10,20 @@ abstract class ComposerCacheRepository {
|
||||
required ComposerCache composerCache,
|
||||
});
|
||||
|
||||
Future<ComposerCache> getComposerCacheOnWeb(
|
||||
Future<List<ComposerCache>> getComposerCacheOnWeb(
|
||||
AccountId accountId,
|
||||
UserName userName);
|
||||
|
||||
Future<void> removeComposerCacheOnWeb();
|
||||
Future<void> removeAllComposerCacheOnWeb(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
);
|
||||
|
||||
Future<void> removeComposerCacheByIdOnWeb(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
String composerId,
|
||||
);
|
||||
|
||||
Future<String> restoreEmailInlineImages(
|
||||
String htmlContent,
|
||||
|
||||
@@ -4,12 +4,12 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/model/composer_cac
|
||||
|
||||
class GetComposerCacheSuccess extends UIState {
|
||||
|
||||
final ComposerCache composerCache;
|
||||
final List<ComposerCache> listComposerCache;
|
||||
|
||||
GetComposerCacheSuccess(this.composerCache);
|
||||
GetComposerCacheSuccess(this.listComposerCache);
|
||||
|
||||
@override
|
||||
List<Object> get props => [composerCache];
|
||||
List<Object> get props => [listComposerCache];
|
||||
}
|
||||
|
||||
class GetComposerCacheFailure extends FeatureFailure {
|
||||
|
||||
+5
-2
@@ -13,8 +13,11 @@ class GetComposerCacheOnWebInteractor {
|
||||
|
||||
Stream<Either<Failure, Success>> execute(AccountId accountId, UserName userName) async* {
|
||||
try {
|
||||
final data = await composerCacheRepository.getComposerCacheOnWeb(accountId, userName);
|
||||
yield Right(GetComposerCacheSuccess(data));
|
||||
final listComposerCache = await composerCacheRepository.getComposerCacheOnWeb(
|
||||
accountId,
|
||||
userName,
|
||||
);
|
||||
yield Right(GetComposerCacheSuccess(listComposerCache));
|
||||
} catch (exception) {
|
||||
yield Left(GetComposerCacheFailure(exception));
|
||||
}
|
||||
|
||||
+22
@@ -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:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart';
|
||||
|
||||
class RemoveAllComposerCacheOnWebInteractor {
|
||||
final ComposerCacheRepository composerCacheRepository;
|
||||
|
||||
RemoveAllComposerCacheOnWebInteractor(this.composerCacheRepository);
|
||||
|
||||
Future<Either<Failure, Success>> execute(AccountId accountId, UserName userName) async {
|
||||
try {
|
||||
composerCacheRepository.removeAllComposerCacheOnWeb(accountId, userName);
|
||||
return Right(RemoveComposerCacheSuccess());
|
||||
} catch (exception) {
|
||||
return Left(RemoveComposerCacheFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart';
|
||||
|
||||
class RemoveComposerCacheByIdOnWebInteractor {
|
||||
final ComposerCacheRepository composerCacheRepository;
|
||||
|
||||
RemoveComposerCacheByIdOnWebInteractor(this.composerCacheRepository);
|
||||
|
||||
Future<Either<Failure, Success>> execute(
|
||||
AccountId accountId,
|
||||
UserName userName,
|
||||
String composerId,
|
||||
) async {
|
||||
try {
|
||||
composerCacheRepository.removeComposerCacheByIdOnWeb(
|
||||
accountId,
|
||||
userName,
|
||||
composerId,
|
||||
);
|
||||
return Right(RemoveComposerCacheSuccess());
|
||||
} catch (exception) {
|
||||
return Left(RemoveComposerCacheFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/repository/composer_cache_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_composer_cache_state.dart';
|
||||
|
||||
class RemoveComposerCacheOnWebInteractor {
|
||||
final ComposerCacheRepository composerCacheRepository;
|
||||
|
||||
RemoveComposerCacheOnWebInteractor(this.composerCacheRepository);
|
||||
|
||||
Future<Either<Failure, Success>> execute() async {
|
||||
try {
|
||||
composerCacheRepository.removeComposerCacheOnWeb();
|
||||
return Right(RemoveComposerCacheSuccess());
|
||||
} catch (exception) {
|
||||
return Left(RemoveComposerCacheFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user