TF-3752 Better error handling when updating recipients in Forwarding

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-27 02:14:32 +07:00
committed by Dat H. Pham
parent f029f1986b
commit b0d3467770
11 changed files with 193 additions and 28 deletions
@@ -1,5 +1,7 @@
class NotFoundForwardException implements Exception {}
class UpdateForwardException implements Exception {}
class RecipientListIsEmptyException implements Exception {}
class RecipientListWithInvalidEmailsException implements Exception {}
@@ -11,11 +11,14 @@ class AddRecipientInForwardingRequest with EquatableMixin {
});
TMailForward get newTMailForward {
final newListRecipients = currentForward.forwards
.where((recipient) => !listRecipientAdded.contains(recipient))
.toSet();
newListRecipients.addAll(listRecipientAdded);
return currentForward.copyWith(forwards: newListRecipients);
final currentRecipients = currentForward.forwards ?? {};
final updatedRecipients = {
...currentRecipients,
...listRecipientAdded,
};
return currentForward.copyWith(forwards: updatedRecipients);
}
@override
@@ -11,11 +11,11 @@ class DeleteRecipientInForwardingRequest with EquatableMixin {
});
TMailForward get newTMailForward {
final newListRecipients = currentForward.forwards
.where((recipient) => !listRecipientDeleted.contains(recipient))
.toSet();
final currentRecipients = currentForward.forwards ?? {};
return currentForward.copyWith(forwards: newListRecipients);
final updatedRecipients = currentRecipients.difference(listRecipientDeleted.toSet());
return currentForward.copyWith(forwards: updatedRecipients);
}
@override