From 0c46071bbf13efadd654b51fcbbf55897bf8a761 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 7 Nov 2023 16:21:42 +0700 Subject: [PATCH] TF-2302 Fix delete folder Signed-off-by: dab246 Signed-off-by: dab246 (cherry picked from commit e5d455fd923053d1cd3793204130e6dd4423f5e0) --- lib/features/base/mixin/handle_error_mixin.dart | 8 ++++---- lib/features/email/data/network/email_api.dart | 9 +++------ .../mailbox/data/network/mailbox_api.dart | 16 ++++++++-------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/lib/features/base/mixin/handle_error_mixin.dart b/lib/features/base/mixin/handle_error_mixin.dart index 6f128f3c1..7f03d3c3e 100644 --- a/lib/features/base/mixin/handle_error_mixin.dart +++ b/lib/features/base/mixin/handle_error_mixin.dart @@ -56,20 +56,20 @@ mixin HandleSetErrorMixin { } } - List> handleSetResponse(List listSetResponse) { + Map handleSetResponse(List listSetResponse) { final listSetResponseNotNull = listSetResponse.whereNotNull().toList(); if (listSetResponseNotNull.isEmpty) { - return []; + return {}; } - final List> remainedErrors = []; + final Map remainedErrors = {}; for (var response in listSetResponseNotNull) { handleSetErrors( notDestroyedError: response.notDestroyed, notUpdatedError: response.notUpdated, notCreatedError: response.notCreated, unCatchErrorHandler: (setErrorEntry) { - remainedErrors.add(setErrorEntry); + remainedErrors.addEntries({setErrorEntry}); return false; } ); diff --git a/lib/features/email/data/network/email_api.dart b/lib/features/email/data/network/email_api.dart index efdbd6546..e6f73ba35 100644 --- a/lib/features/email/data/network/email_api.dart +++ b/lib/features/email/data/network/email_api.dart @@ -204,12 +204,11 @@ class EmailAPI with HandleSetErrorMixin { } final emailCreated = setEmailResponse?.created?[idCreateMethod]; - final listEntriesErrors = handleSetResponse([ + final mapErrors = handleSetResponse([ setEmailResponse, setEmailSubmissionResponse, markAsAnsweredOrForwardedSetResponse ]); - final mapErrors = Map.fromEntries(listEntriesErrors); if (emailCreated != null && mapErrors.isEmpty) { return true; @@ -482,8 +481,7 @@ class EmailAPI with HandleSetErrorMixin { ); final emailCreated = setEmailResponse?.created?[idCreateMethod]; - final listEntriesErrors = handleSetResponse([setEmailResponse]); - final mapErrors = Map.fromEntries(listEntriesErrors); + final mapErrors = handleSetResponse([setEmailResponse]); if (emailCreated != null && mapErrors.isEmpty) { return emailCreated; @@ -549,8 +547,7 @@ class EmailAPI with HandleSetErrorMixin { final emailUpdated = setEmailResponse?.created?[idCreateMethod]; final isEmailDeleted = setEmailResponse?.destroyed?.contains(oldEmailId.id); - final listEntriesErrors = handleSetResponse([setEmailResponse]); - final mapErrors = Map.fromEntries(listEntriesErrors); + final mapErrors = handleSetResponse([setEmailResponse]); if (emailUpdated != null && isEmailDeleted == true && mapErrors.isEmpty) { return emailUpdated; diff --git a/lib/features/mailbox/data/network/mailbox_api.dart b/lib/features/mailbox/data/network/mailbox_api.dart index ec79f7eca..e75bb11ae 100644 --- a/lib/features/mailbox/data/network/mailbox_api.dart +++ b/lib/features/mailbox/data/network/mailbox_api.dart @@ -197,12 +197,15 @@ class MailboxAPI with HandleSetErrorMixin { Future> deleteMultipleMailbox(Session session, AccountId accountId, List mailboxIds) async { final coreCapability = session.getCapabilityProperties( - accountId, CapabilityIdentifier.jmapCore); - final maxMethodCount = coreCapability?.maxCallsInRequest?.value.toInt() ?? 0; + accountId, + CapabilityIdentifier.jmapCore + ); + int maxMethodCount = coreCapability?.maxCallsInRequest?.value.toInt() ?? CapabilityIdentifierExtension.defaultMaxCallsInRequest; + log('MailboxAPI::deleteMultipleMailbox:maxMethodCount: $maxMethodCount'); final Map finalDeletedMailboxErrors = {}; - var start = 0; - var end = 0; + int start = 0; + int end = 0; while (end < mailboxIds.length) { start = end; if (mailboxIds.length - start >= maxMethodCount) { @@ -282,10 +285,7 @@ class MailboxAPI with HandleSetErrorMixin { if (setMailboxResponse?.updated?.containsKey(request.mailboxId.id) == true) { return true; } else { - final listEntriesErrors = handleSetResponse([ - setMailboxResponse, - ]); - final mapErrors = Map.fromEntries(listEntriesErrors); + final mapErrors = handleSetResponse([setMailboxResponse]); throw SetMethodException(mapErrors); } }