TF-2667 Move the creation of mailbox request id to the data layer

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2024-03-05 18:47:31 +07:00
committed by Dat H. Pham
parent 61687b60e0
commit 016b75aa51
13 changed files with 14 additions and 50 deletions
@@ -148,9 +148,11 @@ class MailboxAPI with HandleSetErrorMixin {
}
Future<Mailbox?> createNewMailbox(Session session, AccountId accountId, CreateNewMailboxRequest request) async {
final generateCreateId = Id(_uuid.v1());
final setMailboxMethod = SetMailboxMethod(accountId)
..addCreate(
request.creationId,
generateCreateId,
Mailbox(
name: request.newName,
isSubscribed: IsSubscribed(request.isSubscribed),
@@ -176,14 +178,14 @@ class MailboxAPI with HandleSetErrorMixin {
final mapMailboxCreated = setMailboxResponse?.created;
if (mapMailboxCreated != null &&
mapMailboxCreated.containsKey(request.creationId)) {
final mailboxCreated = mapMailboxCreated[request.creationId]!;
mapMailboxCreated.containsKey(generateCreateId)) {
final mailboxCreated = mapMailboxCreated[generateCreateId]!;
final newMailboxCreated = mailboxCreated.toMailbox(
request.newName,
parentId: request.parentId);
return newMailboxCreated;
} else {
throw _parseErrorForSetMailboxResponse(setMailboxResponse, request.creationId);
throw _parseErrorForSetMailboxResponse(setMailboxResponse, generateCreateId);
}
}
@@ -1,17 +1,14 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
class CreateNewMailboxRequest with EquatableMixin {
final MailboxName newName;
final Id creationId;
final MailboxId? parentId;
final bool isSubscribed;
CreateNewMailboxRequest(
this.creationId,
this.newName,
{
this.parentId,
@@ -21,7 +18,6 @@ class CreateNewMailboxRequest with EquatableMixin {
@override
List<Object?> get props => [
creationId,
newName,
parentId,
isSubscribed
@@ -8,7 +8,6 @@ import 'package:flutter_svg/flutter_svg.dart';
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/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
@@ -591,9 +590,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
: await push(AppRoutes.mailboxCreator, arguments: arguments);
if (result != null && result is NewMailboxArguments) {
final generateCreateId = Id(uuid.v1());
_createNewMailboxAction(session, accountId, CreateNewMailboxRequest(
generateCreateId,
result.newName,
parentId: result.mailboxLocation?.id));
}