]> nmode's Git Repositories - signal-cli/commitdiff
Include recipient identifier in send error message
authorAsamK <asamk@gmx.de>
Fri, 10 Dec 2021 19:21:14 +0000 (20:21 +0100)
committerAsamK <asamk@gmx.de>
Fri, 10 Dec 2021 19:21:14 +0000 (20:21 +0100)
lib/src/main/java/org/asamk/signal/manager/api/RecipientIdentifier.java
src/main/java/org/asamk/signal/util/ErrorUtils.java

index aa7ab54789fc0fde3469eb839e44214fd781386f..0915554dd7e94f800ba1d089c7ef3d6586f66fcf 100644 (file)
@@ -11,9 +11,16 @@ import java.util.UUID;
 
 public sealed interface RecipientIdentifier {
 
+    String getIdentifier();
+
     record NoteToSelf() implements RecipientIdentifier {
 
         public static NoteToSelf INSTANCE = new NoteToSelf();
+
+        @Override
+        public String getIdentifier() {
+            return "Note-To-Self";
+        }
     }
 
     sealed interface Single extends RecipientIdentifier {
@@ -43,8 +50,6 @@ public sealed interface RecipientIdentifier {
             }
             throw new AssertionError("RecipientAddress without identifier");
         }
-
-        String getIdentifier();
     }
 
     record Uuid(UUID uuid) implements Single {
@@ -63,5 +68,11 @@ public sealed interface RecipientIdentifier {
         }
     }
 
-    record Group(GroupId groupId) implements RecipientIdentifier {}
+    record Group(GroupId groupId) implements RecipientIdentifier {
+
+        @Override
+        public String getIdentifier() {
+            return groupId.toBase64();
+        }
+    }
 }
index 6a453fed3a25b65bd2786f6a92e5e959b4352c5c..3ca731630f0e05ccbf60ee29ee4415df5ee636a7 100644 (file)
@@ -6,10 +6,10 @@ import org.asamk.signal.manager.api.ProofRequiredException;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendMessageResult;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 public class ErrorUtils {
@@ -20,7 +20,7 @@ public class ErrorUtils {
     public static void handleSendMessageResults(
             Map<RecipientIdentifier, List<SendMessageResult>> mapResults
     ) throws CommandException {
-        List<String> errors = getErrorMessagesFromSendMessageResults(mapResults);
+        var errors = getErrorMessagesFromSendMessageResults(mapResults);
         handleSendMessageResultErrors(errors);
     }
 
@@ -32,22 +32,21 @@ public class ErrorUtils {
     }
 
     public static List<String> getErrorMessagesFromSendMessageResults(final Map<RecipientIdentifier, List<SendMessageResult>> mapResults) {
-        return mapResults.values()
+        return mapResults.entrySet()
                 .stream()
-                .flatMap(results -> getErrorMessagesFromSendMessageResults(results).stream())
+                .flatMap(entry -> entry.getValue()
+                        .stream()
+                        .map(ErrorUtils::getErrorMessageFromSendMessageResult)
+                        .filter(Objects::nonNull)
+                        .map(error -> entry.getKey().getIdentifier() + ": " + error))
                 .collect(Collectors.toList());
     }
 
     public static List<String> getErrorMessagesFromSendMessageResults(Collection<SendMessageResult> results) {
-        var errors = new ArrayList<String>();
-        for (var result : results) {
-            var error = getErrorMessageFromSendMessageResult(result);
-            if (error != null) {
-                errors.add(error);
-            }
-        }
-
-        return errors;
+        return results.stream()
+                .map(ErrorUtils::getErrorMessageFromSendMessageResult)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
     }
 
     public static String getErrorMessageFromSendMessageResult(SendMessageResult result) {