TF-1604: Add requiredCapabilities support TeamMailbox for mailbox

(cherry picked from commit ac7a8bff08ddc13e94b9ae97923c477c7d810ba0)
This commit is contained in:
HuyNguyen
2023-03-21 14:15:54 +07:00
committed by Dat Vu
parent 13fe2300dc
commit 0b0db87260
19 changed files with 196 additions and 132 deletions
@@ -9,6 +9,7 @@ import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/error/method/error_method_response.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
@@ -470,7 +471,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
void goToCreateNewMailboxView(BuildContext context) async {
final accountId = mailboxDashBoardController.accountId.value;
if (accountId != null) {
final session = mailboxDashBoardController.sessionCurrent;
if (session !=null && accountId != null) {
final arguments = MailboxCreatorArguments(
accountId,
defaultMailboxTree.value,
@@ -484,7 +486,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
arguments: arguments,
onCreatedMailbox: (newMailboxArguments) {
final generateCreateId = Id(_uuid.v1());
_createNewMailboxAction(accountId, CreateNewMailboxRequest(
_createNewMailboxAction(session, accountId, CreateNewMailboxRequest(
generateCreateId,
newMailboxArguments.newName,
parentId: newMailboxArguments.mailboxLocation?.id));
@@ -496,7 +498,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
if (newMailboxArguments != null && newMailboxArguments is NewMailboxArguments) {
final generateCreateId = Id(_uuid.v1());
_createNewMailboxAction(accountId, CreateNewMailboxRequest(
_createNewMailboxAction(session, accountId, CreateNewMailboxRequest(
generateCreateId,
newMailboxArguments.newName,
parentId: newMailboxArguments.mailboxLocation?.id));
@@ -505,8 +507,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
}
void _createNewMailboxAction(AccountId accountId, CreateNewMailboxRequest request) async {
consumeState(_createNewMailboxInteractor.execute(accountId, request));
void _createNewMailboxAction(Session session, AccountId accountId, CreateNewMailboxRequest request) async {
consumeState(_createNewMailboxInteractor.execute(session, accountId, request));
}
void _createNewMailboxSuccess(CreateNewMailboxSuccess success) {
@@ -763,9 +765,11 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
void _renameMailboxAction(PresentationMailbox presentationMailbox, MailboxName newMailboxName) {
final accountId = mailboxDashBoardController.accountId.value;
final session = mailboxDashBoardController.sessionCurrent;
if (accountId != null) {
if (session != null && accountId != null) {
consumeState(_renameMailboxInteractor.execute(
session,
accountId,
RenameMailboxRequest(presentationMailbox.id, newMailboxName))
);
@@ -775,17 +779,21 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
void _handleMovingMailbox(
AccountId accountId,
MoveAction moveAction,
PresentationMailbox mailboxSelected,
{PresentationMailbox? destinationMailbox}) {
consumeState(_moveMailboxInteractor.execute(accountId,
MoveMailboxRequest(
mailboxSelected.id,
moveAction,
destinationMailboxId: destinationMailbox?.id,
destinationMailboxName: destinationMailbox?.name,
parentId: mailboxSelected.parentId)));
Session session,
AccountId accountId,
MoveAction moveAction,
PresentationMailbox mailboxSelected,
{PresentationMailbox? destinationMailbox}
) {
consumeState(_moveMailboxInteractor.execute(
session,
accountId,
MoveMailboxRequest(
mailboxSelected.id,
moveAction,
destinationMailboxId: destinationMailbox?.id,
destinationMailboxName: destinationMailbox?.name,
parentId: mailboxSelected.parentId)));
}
void _moveMailboxSuccess(MoveMailboxSuccess success) {
@@ -815,9 +823,10 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
void _undoMovingMailbox(MoveMailboxRequest newMoveRequest) {
final session = mailboxDashBoardController.sessionCurrent;
final accountId = mailboxDashBoardController.accountId.value;
if (accountId != null) {
consumeState(_moveMailboxInteractor.execute(accountId, newMoveRequest));
if (session != null && accountId != null) {
consumeState(_moveMailboxInteractor.execute(session, accountId, newMoveRequest));
}
}
@@ -934,8 +943,10 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
void _invokeMovingMailboxAction(PresentationMailbox mailboxSelected, PresentationMailbox? destinationMailbox) {
final accountId = mailboxDashBoardController.accountId.value;
if (accountId != null) {
final session = mailboxDashBoardController.sessionCurrent;
if (session != null && accountId != null) {
_handleMovingMailbox(
session,
accountId,
MoveAction.moving,
mailboxSelected,
@@ -1004,8 +1015,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
void _unsubscribeMailboxAction(MailboxId mailboxId) {
final accountId = mailboxDashBoardController.accountId.value;
if (accountId != null) {
final session = mailboxDashBoardController.sessionCurrent;
if (session != null && accountId != null) {
final subscribeRequest = generateSubscribeRequest(
mailboxId,
MailboxSubscribeState.disabled,
@@ -1013,9 +1024,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
);
if (subscribeRequest is SubscribeMultipleMailboxRequest) {
consumeState(_subscribeMultipleMailboxInteractor.execute(accountId, subscribeRequest));
consumeState(_subscribeMultipleMailboxInteractor.execute(session, accountId, subscribeRequest));
} else if (subscribeRequest is SubscribeMailboxRequest) {
consumeState(_subscribeMailboxInteractor.execute(accountId, subscribeRequest));
consumeState(_subscribeMailboxInteractor.execute(session, accountId, subscribeRequest));
}
}
}
@@ -1103,8 +1114,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
{List<MailboxId>? listDescendantMailboxIds}
) {
final accountId = mailboxDashBoardController.accountId.value;
final session = mailboxDashBoardController.sessionCurrent;
if (accountId != null) {
if (session != null && accountId != null) {
SubscribeRequest? subscribeRequest;
if (listDescendantMailboxIds != null) {
@@ -1123,9 +1135,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
}
if (subscribeRequest is SubscribeMultipleMailboxRequest) {
consumeState(_subscribeMultipleMailboxInteractor.execute(accountId, subscribeRequest));
consumeState(_subscribeMultipleMailboxInteractor.execute(session, accountId, subscribeRequest));
} else if (subscribeRequest is SubscribeMailboxRequest) {
consumeState(_subscribeMailboxInteractor.execute(accountId, subscribeRequest));
consumeState(_subscribeMailboxInteractor.execute(session, accountId, subscribeRequest));
}
}
}