TF-2536 Change the logic to get all mailbox

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2024-02-05 16:16:40 +07:00
committed by Dat PHAM HOANG
parent 560bba622c
commit d8bfb83e89
19 changed files with 273 additions and 115 deletions
@@ -12,13 +12,13 @@ import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/get/get_mailbox_response.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_change_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/get_mailbox_by_role_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/move_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/rename_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/subscribe_mailbox_request.dart';
@@ -33,7 +33,7 @@ class MailboxCacheDataSourceImpl extends MailboxDataSource {
MailboxCacheDataSourceImpl(this._mailboxCacheManager, this._exceptionThrower);
@override
Future<MailboxResponse> getAllMailbox(Session session, AccountId accountId, {Properties? properties}) {
Future<GetMailboxResponse> getAllMailbox(Session session, AccountId accountId, {Properties? properties}) {
throw UnimplementedError();
}
@@ -111,4 +111,11 @@ class MailboxCacheDataSourceImpl extends MailboxDataSource {
Future<GetMailboxByRoleResponse> getMailboxByRole(Session session, AccountId accountId, Role role, {UnsignedInt? limit}) {
throw UnimplementedError();
}
@override
Future<void> clearAllMailboxCache(AccountId accountId, UserName userName) {
return Future.sync(() async {
return await _mailboxCacheManager.clearAll(accountId, userName);
}).catchError(_exceptionThrower.throwException);
}
}
@@ -12,6 +12,7 @@ import 'package:jmap_dart_client/jmap/core/state.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/get/get_mailbox_response.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_change_response.dart';
@@ -19,7 +20,6 @@ import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/get_mailbox_by_role_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/move_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/rename_mailbox_request.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/subscribe_mailbox_request.dart';
@@ -35,7 +35,7 @@ class MailboxDataSourceImpl extends MailboxDataSource {
MailboxDataSourceImpl(this.mailboxAPI, this._mailboxIsolateWorker, this._exceptionThrower);
@override
Future<MailboxResponse> getAllMailbox(Session session, AccountId accountId, {Properties? properties}) {
Future<GetMailboxResponse> getAllMailbox(Session session, AccountId accountId, {Properties? properties}) {
return Future.sync(() async {
return await mailboxAPI.getAllMailbox(session, accountId, properties: properties);
}).catchError(_exceptionThrower.throwException);
@@ -141,4 +141,9 @@ class MailboxDataSourceImpl extends MailboxDataSource {
return await mailboxAPI.getMailboxByRole(session, accountId, role);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<void> clearAllMailboxCache(AccountId accountId, UserName userName) {
throw UnimplementedError();
}
}