X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/06e93b84da2718c31111e820cd35a3354f22bae2..832604e763a19df09ec4f3af6aa57a0f7e8439d6:/src/main/java/org/asamk/signal/util/SendMessageResultUtils.java diff --git a/src/main/java/org/asamk/signal/util/SendMessageResultUtils.java b/src/main/java/org/asamk/signal/util/SendMessageResultUtils.java index 0e13a200..74f49534 100644 --- a/src/main/java/org/asamk/signal/util/SendMessageResultUtils.java +++ b/src/main/java/org/asamk/signal/util/SendMessageResultUtils.java @@ -1,5 +1,8 @@ package org.asamk.signal.util; +import org.asamk.signal.commands.exceptions.CommandException; +import org.asamk.signal.commands.exceptions.UntrustedKeyErrorException; +import org.asamk.signal.commands.exceptions.UserErrorException; import org.asamk.signal.json.JsonSendMessageResult; import org.asamk.signal.manager.api.ProofRequiredException; import org.asamk.signal.manager.api.RecipientIdentifier; @@ -33,7 +36,9 @@ public class SendMessageResultUtils { } } - public static void outputResult(final OutputWriter outputWriter, final SendMessageResults sendMessageResults) { + public static void outputResult( + final OutputWriter outputWriter, final SendMessageResults sendMessageResults + ) throws CommandException { if (outputWriter instanceof PlainTextWriter writer) { var errors = getErrorMessagesFromSendMessageResults(sendMessageResults.results()); printSendMessageResultErrors(writer, errors); @@ -43,6 +48,13 @@ public class SendMessageResultUtils { var results = getJsonSendMessageResults(sendMessageResults.results()); writer.write(Map.of("timestamp", sendMessageResults.timestamp(), "results", results)); } + if (!sendMessageResults.hasSuccess()) { + if (sendMessageResults.hasOnlyUntrustedIdentity()) { + throw new UntrustedKeyErrorException("Failed to send message due to untrusted identities"); + } else { + throw new UserErrorException("Failed to send message"); + } + } } public static List getErrorMessagesFromSendMessageResults(final Map> mapResults) { @@ -53,14 +65,14 @@ public class SendMessageResultUtils { .map(SendMessageResultUtils::getErrorMessageFromSendMessageResult) .filter(Objects::nonNull) .map(error -> entry.getKey().getIdentifier() + ": " + error)) - .collect(Collectors.toList()); + .toList(); } public static List getErrorMessagesFromSendMessageResults(Collection results) { return results.stream() .map(SendMessageResultUtils::getErrorMessageFromSendMessageResult) .filter(Objects::nonNull) - .collect(Collectors.toList()); + .toList(); } public static String getErrorMessageFromSendMessageResult(SendMessageResult result) { @@ -106,14 +118,14 @@ public class SendMessageResultUtils { } } - public static List getJsonSendMessageResults(final Map> mapResults) { + private static List getJsonSendMessageResults(final Map> mapResults) { return mapResults.entrySet().stream().flatMap(entry -> { final var groupId = entry.getKey() instanceof RecipientIdentifier.Group g ? g.groupId() : null; return entry.getValue().stream().map(r -> JsonSendMessageResult.from(r, groupId)); - }).collect(Collectors.toList()); + }).toList(); } public static List getJsonSendMessageResults(Collection results) { - return results.stream().map(JsonSendMessageResult::from).collect(Collectors.toList()); + return results.stream().map(JsonSendMessageResult::from).toList(); } }