]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/SendMessageResults.java
Improve exit code for message sending
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / SendMessageResults.java
index f0d609e9526a37b564e82e1091eda13214e63fb7..5b8cfc03624e96155121722e767d9674b87d92c9 100644 (file)
@@ -3,4 +3,20 @@ package org.asamk.signal.manager.api;
 import java.util.List;
 import java.util.Map;
 
-public record SendMessageResults(long timestamp, Map<RecipientIdentifier, List<SendMessageResult>> results) {}
+public record SendMessageResults(long timestamp, Map<RecipientIdentifier, List<SendMessageResult>> results) {
+
+    public boolean hasSuccess() {
+        return results.values()
+                .stream()
+                .flatMap(res -> res.stream().map(SendMessageResult::isSuccess))
+                .anyMatch(success -> success) || results.values().stream().mapToInt(List::size).sum() == 0;
+    }
+
+    public boolean hasOnlyUntrustedIdentity() {
+        return results.values()
+                .stream()
+                .flatMap(res -> res.stream().map(SendMessageResult::isIdentityFailure))
+                .allMatch(identityFailure -> identityFailure)
+                && results.values().stream().mapToInt(List::size).sum() > 0;
+    }
+}