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:
@@ -24,7 +24,6 @@ extension EmailRequestExtension on EmailRequest {
|
||||
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||
identityId: identityId,
|
||||
mailboxNameRequest: mailboxRequest?.newName,
|
||||
creationIdRequest: mailboxRequest?.creationId,
|
||||
sendingState: newState,
|
||||
previousEmailId: previousEmailId
|
||||
);
|
||||
|
||||
@@ -7,7 +7,6 @@ import 'package:flutter/material.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/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
@@ -387,7 +386,6 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
|
||||
final nameMailbox = newNameMailbox.value;
|
||||
if (nameMailbox != null && nameMailbox.isNotEmpty) {
|
||||
final generateCreateId = Id(uuid.v1());
|
||||
final parentId = mailboxDestination.value == PresentationMailbox.unifiedMailbox
|
||||
? null
|
||||
: mailboxDestination.value?.id;
|
||||
@@ -396,7 +394,6 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
_session!,
|
||||
accountId!,
|
||||
CreateNewMailboxRequest(
|
||||
generateCreateId,
|
||||
MailboxName(nameMailbox),
|
||||
parentId: parentId));
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ class EmailAPI with HandleSetErrorMixin {
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> sendEmail(
|
||||
Future<void> sendEmail(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
EmailRequest emailRequest,
|
||||
@@ -125,9 +125,10 @@ class EmailAPI with HandleSetErrorMixin {
|
||||
MailboxId? outboxMailboxId;
|
||||
|
||||
if (mailboxRequest != null) {
|
||||
final generateCreateId = Id(_uuid.v1());
|
||||
final setMailboxMethod = SetMailboxMethod(accountId)
|
||||
..addCreate(
|
||||
mailboxRequest.creationId,
|
||||
generateCreateId,
|
||||
Mailbox(
|
||||
name: mailboxRequest.newName,
|
||||
parentId: mailboxRequest.parentId,
|
||||
@@ -139,7 +140,7 @@ class EmailAPI with HandleSetErrorMixin {
|
||||
|
||||
outboxMailboxId = MailboxId(ReferenceId(
|
||||
ReferencePrefix.defaultPrefix,
|
||||
mailboxRequest.creationId));
|
||||
generateCreateId));
|
||||
emailNeedsToBeCreated = emailRequest.email.updatedEmail(newMailboxIds: {outboxMailboxId: true});
|
||||
} else {
|
||||
outboxMailboxId = emailRequest.email.mailboxIds?.keys.first;
|
||||
@@ -222,9 +223,7 @@ class EmailAPI with HandleSetErrorMixin {
|
||||
markAsAnsweredOrForwardedSetResponse
|
||||
]);
|
||||
|
||||
if (emailCreated != null && mapErrors.isEmpty) {
|
||||
return true;
|
||||
} else {
|
||||
if (emailCreated == null || mapErrors.isNotEmpty) {
|
||||
throw SetMethodException(mapErrors);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/identities/identity_id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/mailbox_id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/mailbox_name_converter.dart';
|
||||
@@ -25,7 +24,6 @@ extension SendingEmailHiveCacheExtension on SendingEmailHiveCache {
|
||||
emailIdAnsweredOrForwarded: const EmailIdNullableConverter().fromJson(emailIdAnsweredOrForwarded),
|
||||
identityId: const IdentityIdNullableConverter().fromJson(identityId),
|
||||
mailboxNameRequest: const MailboxNameConverter().fromJson(mailboxNameRequest),
|
||||
creationIdRequest: const IdNullableConverter().fromJson(creationIdRequest),
|
||||
sendingState: SendingState.values.firstWhere((value) => value.name == sendingState),
|
||||
previousEmailId: const EmailIdNullableConverter().fromJson(previousEmailId),
|
||||
);
|
||||
|
||||
@@ -36,12 +36,9 @@ class SendingEmailHiveCache extends HiveObject with EquatableMixin {
|
||||
final String? mailboxNameRequest;
|
||||
|
||||
@HiveField(9)
|
||||
final String? creationIdRequest;
|
||||
|
||||
@HiveField(10)
|
||||
final String sendingState;
|
||||
|
||||
@HiveField(11)
|
||||
@HiveField(10)
|
||||
final String? previousEmailId;
|
||||
|
||||
SendingEmailHiveCache(
|
||||
@@ -54,7 +51,6 @@ class SendingEmailHiveCache extends HiveObject with EquatableMixin {
|
||||
this.emailIdAnsweredOrForwarded,
|
||||
this.identityId,
|
||||
this.mailboxNameRequest,
|
||||
this.creationIdRequest,
|
||||
this.sendingState,
|
||||
this.previousEmailId,
|
||||
);
|
||||
@@ -70,7 +66,6 @@ class SendingEmailHiveCache extends HiveObject with EquatableMixin {
|
||||
emailIdAnsweredOrForwarded,
|
||||
identityId,
|
||||
mailboxNameRequest,
|
||||
creationIdRequest,
|
||||
sendingState,
|
||||
previousEmailId,
|
||||
];
|
||||
|
||||
@@ -193,10 +193,8 @@ class SendingEmailWorker extends Worker {
|
||||
}
|
||||
|
||||
CreateNewMailboxRequest? _getMailboxRequest() {
|
||||
if (_sendingEmail.mailboxNameRequest != null &&
|
||||
_sendingEmail.creationIdRequest != null) {
|
||||
if (_sendingEmail.mailboxNameRequest != null) {
|
||||
return CreateNewMailboxRequest(
|
||||
_sendingEmail.creationIdRequest!,
|
||||
_sendingEmail.mailboxNameRequest!);
|
||||
} else {
|
||||
return null;
|
||||
|
||||
@@ -11,7 +11,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;
|
||||
@@ -676,9 +675,7 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
|
||||
: 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));
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ extension SendingEmailExtension on SendingEmail {
|
||||
emailIdAnsweredOrForwarded?.asString,
|
||||
identityId?.asString,
|
||||
mailboxNameRequest?.name,
|
||||
creationIdRequest?.value,
|
||||
sendingState.name,
|
||||
previousEmailId?.asString,
|
||||
);
|
||||
@@ -51,7 +50,6 @@ extension SendingEmailExtension on SendingEmail {
|
||||
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||
identityId: identityId,
|
||||
mailboxNameRequest: mailboxNameRequest,
|
||||
creationIdRequest: creationIdRequest,
|
||||
sendingState: sendingState,
|
||||
selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE,
|
||||
previousEmailId: previousEmailId,
|
||||
@@ -69,7 +67,6 @@ extension SendingEmailExtension on SendingEmail {
|
||||
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||
identityId: identityId,
|
||||
mailboxNameRequest: mailboxNameRequest,
|
||||
creationIdRequest: creationIdRequest,
|
||||
sendingState: sendingState,
|
||||
selectMode: SelectMode.INACTIVE,
|
||||
previousEmailId: previousEmailId,
|
||||
@@ -87,7 +84,6 @@ extension SendingEmailExtension on SendingEmail {
|
||||
emailIdAnsweredOrForwarded: emailIdAnsweredOrForwarded,
|
||||
identityId: identityId,
|
||||
mailboxNameRequest: mailboxNameRequest,
|
||||
creationIdRequest: creationIdRequest,
|
||||
sendingState: newState,
|
||||
selectMode: selectMode,
|
||||
previousEmailId: previousEmailId,
|
||||
|
||||
@@ -5,11 +5,9 @@ import 'package:core/utils/platform_info.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_date_range_picker/flutter_date_range_picker.dart';
|
||||
import 'package:jmap_dart_client/http/converter/email_id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/identities/identity_id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/mailbox_id_nullable_converter.dart';
|
||||
import 'package:jmap_dart_client/http/converter/mailbox_name_converter.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
@@ -28,7 +26,6 @@ class SendingEmail with EquatableMixin {
|
||||
final IdentityId? identityId;
|
||||
final EmailActionType emailActionType;
|
||||
final MailboxName? mailboxNameRequest;
|
||||
final Id? creationIdRequest;
|
||||
final DateTime createTime;
|
||||
final SelectMode selectMode;
|
||||
final SendingState sendingState;
|
||||
@@ -44,7 +41,6 @@ class SendingEmail with EquatableMixin {
|
||||
this.emailIdAnsweredOrForwarded,
|
||||
this.identityId,
|
||||
this.mailboxNameRequest,
|
||||
this.creationIdRequest,
|
||||
this.selectMode = SelectMode.INACTIVE,
|
||||
this.sendingState = SendingState.waiting,
|
||||
this.previousEmailId,
|
||||
@@ -68,7 +64,6 @@ class SendingEmail with EquatableMixin {
|
||||
writeNotNull('emailIdAnsweredOrForwarded', const EmailIdNullableConverter().toJson(emailIdAnsweredOrForwarded));
|
||||
writeNotNull('identityId', const IdentityIdNullableConverter().toJson(identityId));
|
||||
writeNotNull('mailboxNameRequest', mailboxNameRequest?.name);
|
||||
writeNotNull('creationIdRequest', const IdNullableConverter().toJson(creationIdRequest));
|
||||
writeNotNull('previousEmailId', const EmailIdNullableConverter().toJson(previousEmailId));
|
||||
|
||||
return val;
|
||||
@@ -91,7 +86,6 @@ class SendingEmail with EquatableMixin {
|
||||
emailIdAnsweredOrForwarded: const EmailIdNullableConverter().fromJson(json['emailIdAnsweredOrForwarded'] as String?),
|
||||
identityId: const IdentityIdNullableConverter().fromJson(json['identityId'] as String?),
|
||||
mailboxNameRequest: const MailboxNameConverter().fromJson(json['mailboxNameRequest'] as String?),
|
||||
creationIdRequest: const IdNullableConverter().fromJson(json['creationIdRequest'] as String?),
|
||||
previousEmailId: const EmailIdNullableConverter().fromJson(json['previousEmailId'] as String?),
|
||||
);
|
||||
}
|
||||
@@ -134,7 +128,6 @@ class SendingEmail with EquatableMixin {
|
||||
emailIdAnsweredOrForwarded,
|
||||
identityId,
|
||||
mailboxNameRequest,
|
||||
creationIdRequest,
|
||||
selectMode,
|
||||
sendingState,
|
||||
previousEmailId,
|
||||
|
||||
@@ -283,11 +283,8 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
||||
}
|
||||
|
||||
CreateNewMailboxRequest? _getMailboxRequest(SendingEmail sendingEmail) {
|
||||
if (sendingEmail.mailboxNameRequest != null &&
|
||||
sendingEmail.creationIdRequest != null
|
||||
) {
|
||||
if (sendingEmail.mailboxNameRequest != null) {
|
||||
return CreateNewMailboxRequest(
|
||||
sendingEmail.creationIdRequest!,
|
||||
sendingEmail.mailboxNameRequest!
|
||||
);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user