diff --git a/lib/features/base/mixin/batch_set_email_processing_mixin.dart b/lib/features/base/mixin/batch_set_email_processing_mixin.dart index 257117891..bdde3a9a5 100644 --- a/lib/features/base/mixin/batch_set_email_processing_mixin.dart +++ b/lib/features/base/mixin/batch_set_email_processing_mixin.dart @@ -40,14 +40,14 @@ mixin BatchSetEmailProcessingMixin on HandleSetErrorMixin, MailAPIMixin { final maxObjects = getMaxObjectsInSetMethod(session, accountId); final totalEmails = emailIds.length; - final maxBatches = min(totalEmails, maxObjects); + final batchSize = min(totalEmails, maxObjects); final List updatedEmailIds = List.empty(growable: true); final List listSetResponse = List.empty(growable: true); - for (int start = 0; start < totalEmails; start += maxBatches) { + for (int start = 0; start < totalEmails; start += batchSize) { int end = - (start + maxBatches < totalEmails) ? start + maxBatches : totalEmails; + (start + batchSize < totalEmails) ? start + batchSize : totalEmails; log('EmailAPI::$debugLabel:emails from ${start + 1} to $end'); @@ -73,7 +73,10 @@ mixin BatchSetEmailProcessingMixin on HandleSetErrorMixin, MailAPIMixin { SetEmailResponse.deserialize, ); - if (setEmailResponse == null) continue; + if (setEmailResponse == null) { + log('EmailAPI::$debugLabel: Batch from ${start + 1} to $end returned null response'); + continue; + } final listEmailIds = setEmailResponse.updated?.keys.toEmailIds() ?? []; updatedEmailIds.addAll(listEmailIds); diff --git a/lib/features/email/data/network/email_api.dart b/lib/features/email/data/network/email_api.dart index 50da67658..76f64efaf 100644 --- a/lib/features/email/data/network/email_api.dart +++ b/lib/features/email/data/network/email_api.dart @@ -694,10 +694,10 @@ class EmailAPI with ); final listEmailIds = setEmailResponse?.destroyed?.toEmailIds() ?? []; - final mapErrors = handleSetResponse([setEmailResponse]); + final batchErrors = handleSetResponse([setEmailResponse]); destroyedEmailIds.addAll(listEmailIds); - mapErrors.addAll(mapErrors); + mapErrors.addAll(batchErrors); } return (emailIdsSuccess: destroyedEmailIds, mapErrors: mapErrors); diff --git a/lib/features/email/domain/exceptions/email_exceptions.dart b/lib/features/email/domain/exceptions/email_exceptions.dart index 329690e83..02fcd7ad2 100644 --- a/lib/features/email/domain/exceptions/email_exceptions.dart +++ b/lib/features/email/domain/exceptions/email_exceptions.dart @@ -24,4 +24,4 @@ class NotParsableBlobIdToEmailException implements Exception { NotParsableBlobIdToEmailException({this.ids}); } -class EmailIdListIsEmptyException implements Exception {} \ No newline at end of file +class EmailIdsSuccessIsEmptyException implements Exception {} \ No newline at end of file diff --git a/lib/features/email/domain/usecases/add_a_label_to_a_thread_interactor.dart b/lib/features/email/domain/usecases/add_a_label_to_a_thread_interactor.dart index 62724db81..294e6bf08 100644 --- a/lib/features/email/domain/usecases/add_a_label_to_a_thread_interactor.dart +++ b/lib/features/email/domain/usecases/add_a_label_to_a_thread_interactor.dart @@ -37,7 +37,7 @@ class AddALabelToAThreadInteractor { )); } else if (result.emailIdsSuccess.isEmpty) { yield Left(AddALabelToAThreadFailure( - exception: EmailIdListIsEmptyException(), + exception: EmailIdsSuccessIsEmptyException(), labelDisplay: labelDisplay, )); } else { diff --git a/lib/features/email/domain/usecases/labels/remove_a_label_from_a_thread_interactor.dart b/lib/features/email/domain/usecases/labels/remove_a_label_from_a_thread_interactor.dart index 02b107b7e..094a26e5d 100644 --- a/lib/features/email/domain/usecases/labels/remove_a_label_from_a_thread_interactor.dart +++ b/lib/features/email/domain/usecases/labels/remove_a_label_from_a_thread_interactor.dart @@ -37,7 +37,7 @@ class RemoveALabelFromAThreadInteractor { )); } else if (result.emailIdsSuccess.isEmpty) { yield Left(RemoveALabelFromAThreadFailure( - exception: EmailIdListIsEmptyException(), + exception: EmailIdsSuccessIsEmptyException(), labelDisplay: labelDisplay, )); } else { diff --git a/lib/features/thread_detail/presentation/extension/labels/add_label_to_thread_extension.dart b/lib/features/thread_detail/presentation/extension/labels/add_label_to_thread_extension.dart index a761faf27..b85d867ab 100644 --- a/lib/features/thread_detail/presentation/extension/labels/add_label_to_thread_extension.dart +++ b/lib/features/thread_detail/presentation/extension/labels/add_label_to_thread_extension.dart @@ -49,7 +49,7 @@ extension AddLabelToThreadExtension on ThreadDetailController { } void toggleLabelToThread( - Label label,{ + Label label, { required bool isSelected, List? currentEmailIds, }) {