Use TupleKey(ObjectKey-AccountId-UserName) to store data to hive
(cherry picked from commit e0ace535d5f3af71eb13598d92524caf2c6d9bbf)
This commit is contained in:
@@ -171,7 +171,7 @@ class EmailRepositoryImpl extends EmailRepository {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<jmap.State?> getEmailState(AccountId accountId) {
|
||||
return _stateDataSource.getState(accountId, StateType.email);
|
||||
Future<jmap.State?> getEmailState(Session session, AccountId accountId) {
|
||||
return _stateDataSource.getState(accountId, session.username, StateType.email);
|
||||
}
|
||||
}
|
||||
@@ -85,5 +85,5 @@ abstract class EmailRepository {
|
||||
|
||||
Future<bool> deleteEmailPermanently(Session session, AccountId accountId, EmailId emailId);
|
||||
|
||||
Future<jmap.State?> getEmailState(AccountId accountId);
|
||||
Future<jmap.State?> getEmailState(Session session, AccountId accountId);
|
||||
}
|
||||
@@ -18,8 +18,8 @@ class DeleteEmailPermanentlyInteractor {
|
||||
yield Right<Failure, Success>(StartDeleteEmailPermanently());
|
||||
|
||||
final listState = await Future.wait([
|
||||
_mailboxRepository.getMailboxState(accountId),
|
||||
_emailRepository.getEmailState(accountId),
|
||||
_mailboxRepository.getMailboxState(session, accountId),
|
||||
_emailRepository.getEmailState(session, accountId),
|
||||
], eagerError: true);
|
||||
|
||||
final currentMailboxState = listState.first;
|
||||
|
||||
+2
-2
@@ -18,8 +18,8 @@ class DeleteMultipleEmailsPermanentlyInteractor {
|
||||
yield Right<Failure, Success>(LoadingDeleteMultipleEmailsPermanentlyAll());
|
||||
|
||||
final listState = await Future.wait([
|
||||
_mailboxRepository.getMailboxState(accountId),
|
||||
_emailRepository.getEmailState(accountId),
|
||||
_mailboxRepository.getMailboxState(session, accountId),
|
||||
_emailRepository.getEmailState(session, accountId),
|
||||
], eagerError: true);
|
||||
|
||||
final currentMailboxState = listState.first;
|
||||
|
||||
@@ -4,10 +4,10 @@ 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:model/account/account_request.dart';
|
||||
import 'package:model/account/authentication_type.dart';
|
||||
import 'package:model/account/password.dart';
|
||||
import 'package:model/account/user_name.dart';
|
||||
import 'package:model/download/download_task_id.dart';
|
||||
import 'package:model/email/attachment.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:model/account/account_request.dart';
|
||||
import 'package:model/account/authentication_type.dart';
|
||||
import 'package:model/account/password.dart';
|
||||
import 'package:model/account/personal_account.dart';
|
||||
import 'package:model/email/attachment.dart';
|
||||
import 'package:model/oidc/token_oidc.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/download_attachments_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/extensions/oidc_configuration_extensions.dart';
|
||||
@@ -95,13 +103,13 @@ class DownloadAttachmentsInteractor {
|
||||
await Future.wait([
|
||||
_authenticationOIDCRepository.persistTokenOIDC(newTokenOIDC),
|
||||
_accountRepository.deleteCurrentAccount(accountCurrent.id),
|
||||
_accountRepository.setCurrentAccount(Account(
|
||||
_accountRepository.setCurrentAccount(PersonalAccount(
|
||||
newTokenOIDC.tokenIdHash,
|
||||
AuthenticationType.oidc,
|
||||
isSelected: true,
|
||||
accountId: accountId,
|
||||
apiUrl: accountCurrent.apiUrl
|
||||
))
|
||||
apiUrl: accountCurrent.apiUrl,
|
||||
userName: accountCurrent.userName))
|
||||
]);
|
||||
|
||||
_authorizationInterceptors.setTokenAndAuthorityOidc(
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/export_attachment_state.dart';
|
||||
|
||||
@@ -2,6 +2,7 @@ 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/session/session.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_stored_state_email_state.dart';
|
||||
|
||||
@@ -10,9 +11,9 @@ class GetStoredEmailStateInteractor {
|
||||
|
||||
GetStoredEmailStateInteractor(this._emailRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(AccountId accountId) async* {
|
||||
Stream<Either<Failure, Success>> execute(Session session, AccountId accountId) async* {
|
||||
try {
|
||||
final state = await _emailRepository.getEmailState(accountId);
|
||||
final state = await _emailRepository.getEmailState(session, accountId);
|
||||
if (state != null) {
|
||||
yield Right<Failure, Success>(GetStoredEmailStateSuccess(state));
|
||||
} else {
|
||||
|
||||
@@ -17,8 +17,8 @@ class MarkAsEmailReadInteractor {
|
||||
Stream<Either<Failure, Success>> execute(Session session, AccountId accountId, Email email, ReadActions readAction) async* {
|
||||
try {
|
||||
final listState = await Future.wait([
|
||||
_mailboxRepository.getMailboxState(accountId),
|
||||
_emailRepository.getEmailState(accountId),
|
||||
_mailboxRepository.getMailboxState( session,accountId),
|
||||
_emailRepository.getEmailState(session, accountId),
|
||||
], eagerError: true);
|
||||
|
||||
final currentMailboxState = listState.first;
|
||||
|
||||
@@ -14,7 +14,7 @@ class MarkAsStarEmailInteractor {
|
||||
|
||||
Stream<Either<Failure, Success>> execute(Session session, AccountId accountId, Email email, MarkStarAction markStarAction) async* {
|
||||
try {
|
||||
final currentEmailState = await emailRepository.getEmailState(accountId);
|
||||
final currentEmailState = await emailRepository.getEmailState(session, accountId);
|
||||
final result = await emailRepository.markAsStar(session, accountId, [email], markStarAction);
|
||||
if (result.isNotEmpty) {
|
||||
final updatedEmail = email.updatedEmail(newKeywords: result.first.keywords);
|
||||
|
||||
@@ -18,8 +18,8 @@ class MoveToMailboxInteractor {
|
||||
yield Right(LoadingMoveToMailbox());
|
||||
|
||||
final listState = await Future.wait([
|
||||
_mailboxRepository.getMailboxState(accountId),
|
||||
_emailRepository.getEmailState(accountId),
|
||||
_mailboxRepository.getMailboxState(session, accountId),
|
||||
_emailRepository.getEmailState(session, accountId),
|
||||
], eagerError: true);
|
||||
|
||||
final currentMailboxState = listState.first;
|
||||
|
||||
Reference in New Issue
Block a user