mirror of
https://github.com/aljazceru/signal-cli.git
synced 2026-01-30 11:04:21 +01:00
Improve exit code for message sending
Exit with 0 status code if the message was sent successfully to at least one recipient, otherwise exit with status code 2 or 4 (for untrusted). Fixes #828
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user