X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c3a9022bec11aa2c1333ce7ee1aae29b8212d760..5d83e149b3ed61683da20bba6703a37db66f93cf:/src/main/java/org/asamk/signal/commands/SendCommand.java diff --git a/src/main/java/org/asamk/signal/commands/SendCommand.java b/src/main/java/org/asamk/signal/commands/SendCommand.java index 1af21d53..4d3f80aa 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -11,14 +11,12 @@ import org.asamk.signal.manager.AttachmentInvalidException; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.RecipientIdentifier; +import org.asamk.signal.manager.api.UnregisteredRecipientException; import org.asamk.signal.manager.groups.GroupNotFoundException; import org.asamk.signal.manager.groups.GroupSendingNotAllowedException; import org.asamk.signal.manager.groups.NotAGroupMemberException; -import org.asamk.signal.output.JsonWriter; import org.asamk.signal.output.OutputWriter; -import org.asamk.signal.output.PlainTextWriter; import org.asamk.signal.util.CommandUtil; -import org.asamk.signal.util.ErrorUtils; import org.asamk.signal.util.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -27,11 +25,12 @@ import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static org.asamk.signal.util.SendMessageResultUtils.outputResult; + public class SendCommand implements JsonRpcLocalCommand { private final static Logger logger = LoggerFactory.getLogger(SendCommand.class); @@ -93,8 +92,7 @@ public class SendCommand implements JsonRpcLocalCommand { try { final var results = m.sendEndSessionMessage(singleRecipients); - outputResult(outputWriter, results.timestamp()); - ErrorUtils.handleSendMessageResults(results.results()); + outputResult(outputWriter, results); return; } catch (IOException e) { throw new UnexpectedErrorException("Failed to send message: " + e.getMessage() + " (" + e.getClass() @@ -140,13 +138,14 @@ public class SendCommand implements JsonRpcLocalCommand { try { var results = m.sendMessage(new Message(messageText, attachments, mentions, Optional.ofNullable(quote)), recipientIdentifiers); - outputResult(outputWriter, results.timestamp()); - ErrorUtils.handleSendMessageResults(results.results()); + outputResult(outputWriter, results); } catch (AttachmentInvalidException | IOException e) { throw new UnexpectedErrorException("Failed to send message: " + e.getMessage() + " (" + e.getClass() .getSimpleName() + ")", e); } catch (GroupNotFoundException | NotAGroupMemberException | GroupSendingNotAllowedException e) { throw new UserErrorException(e.getMessage()); + } catch (UnregisteredRecipientException e) { + throw new UserErrorException("The user " + e.getSender().getIdentifier() + " is not registered."); } } @@ -168,13 +167,4 @@ public class SendCommand implements JsonRpcLocalCommand { } return mentions; } - - private void outputResult(final OutputWriter outputWriter, final long timestamp) { - if (outputWriter instanceof PlainTextWriter writer) { - writer.println("{}", timestamp); - } else { - final var writer = (JsonWriter) outputWriter; - writer.write(Map.of("timestamp", timestamp)); - } - } }