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
@@ -30,12 +30,12 @@ import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/mixin/handle_error_mixin.dart';
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_change_response.dart';
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/mailbox_exception.dart';
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/set_mailbox_method_exception.dart';
import 'package:tmail_ui_user/features/mailbox/domain/extensions/list_mailbox_id_extension.dart';
import 'package:tmail_ui_user/features/mailbox/domain/extensions/role_extension.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/mailbox_subscribe_state.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';
@@ -51,7 +51,7 @@ class MailboxAPI with HandleSetErrorMixin {
MailboxAPI(this.httpClient, this._uuid);
Future<MailboxResponse> getAllMailbox(Session session, AccountId accountId, {Properties? properties}) async {
Future<GetMailboxResponse> getAllMailbox(Session session, AccountId accountId, {Properties? properties}) async {
final processingInvocation = ProcessingInvocation();
final jmapRequestBuilder = JmapRequestBuilder(httpClient, processingInvocation);
@@ -70,11 +70,15 @@ class MailboxAPI with HandleSetErrorMixin {
.build()
.execute();
final resultCreated = result.parse<GetMailboxResponse>(
final getMailboxResponse = result.parse<GetMailboxResponse>(
queryInvocation.methodCallId,
GetMailboxResponse.deserialize);
return MailboxResponse(mailboxes: resultCreated?.list, state: resultCreated?.state);
if (getMailboxResponse == null) {
throw NotFoundGetMailboxResponseException();
} else {
return getMailboxResponse;
}
}
Future<MailboxChangeResponse> getChanges(Session session, AccountId accountId, State sinceState, {Properties? properties}) async {