X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/860ec6f5dcda56b55e0e756e862c8c55865ccd19..6a1b7dc5975161f59fbb1012dd340c7b6e0198f7:/src/main/java/org/asamk/signal/util/ErrorUtils.java diff --git a/src/main/java/org/asamk/signal/util/ErrorUtils.java b/src/main/java/org/asamk/signal/util/ErrorUtils.java index 99fc409a..37237f63 100644 --- a/src/main/java/org/asamk/signal/util/ErrorUtils.java +++ b/src/main/java/org/asamk/signal/util/ErrorUtils.java @@ -1,15 +1,13 @@ package org.asamk.signal.util; -import org.asamk.signal.GroupIdFormatException; -import org.asamk.signal.GroupNotFoundException; -import org.asamk.signal.NotAGroupMemberException; -import org.freedesktop.dbus.exceptions.DBusExecutionException; -import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; -import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions; -import org.whispersystems.signalservice.api.push.exceptions.NetworkFailureException; -import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException; +import org.asamk.signal.manager.GroupNotFoundException; +import org.asamk.signal.manager.NotAGroupMemberException; +import org.whispersystems.signalservice.api.messages.SendMessageResult; +import org.whispersystems.signalservice.api.util.InvalidNumberException; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; public class ErrorUtils { @@ -22,17 +20,36 @@ public class ErrorUtils { System.err.println("If you use an Oracle JRE please check if you have unlimited strength crypto enabled, see README"); } - public static void handleEncapsulatedExceptions(EncapsulatedExceptions e) { - System.err.println("Failed to send (some) messages:"); - for (NetworkFailureException n : e.getNetworkExceptions()) { - System.err.println("Network failure for \"" + n.getE164number() + "\": " + n.getMessage()); + public static int handleTimestampAndSendMessageResults(long timestamp, List results) { + System.out.println(timestamp); + List errors = getErrorMessagesFromSendMessageResults(results); + return handleSendMessageResultErrors(errors); + } + + public static List getErrorMessagesFromSendMessageResults(List results) { + List errors = new ArrayList<>(); + for (SendMessageResult result : results) { + if (result.isNetworkFailure()) { + errors.add(String.format("Network failure for \"%s\"", result.getAddress().getLegacyIdentifier())); + } else if (result.isUnregisteredFailure()) { + errors.add(String.format("Unregistered user \"%s\"", result.getAddress().getLegacyIdentifier())); + } else if (result.getIdentityFailure() != null) { + errors.add(String.format("Untrusted Identity for \"%s\"", result.getAddress().getLegacyIdentifier())); + } } - for (UnregisteredUserException n : e.getUnregisteredUserExceptions()) { - System.err.println("Unregistered user \"" + n.getE164Number() + "\": " + n.getMessage()); + + return errors; + } + + private static int handleSendMessageResultErrors(List errors) { + if (errors.size() == 0) { + return 0; } - for (UntrustedIdentityException n : e.getUntrustedIdentityExceptions()) { - System.err.println("Untrusted Identity for \"" + n.getE164Number() + "\": " + n.getMessage()); + System.err.println("Failed to send (some) messages:"); + for (String error : errors) { + System.err.println(error); } + return 3; } public static void handleIOException(IOException e) { @@ -50,13 +67,13 @@ public class ErrorUtils { System.err.println("Aborting sending."); } - public static void handleDBusExecutionException(DBusExecutionException e) { - System.err.println("Cannot connect to dbus: " + e.getMessage()); - System.err.println("Aborting."); - } - public static void handleGroupIdFormatException(GroupIdFormatException e) { System.err.println(e.getMessage()); System.err.println("Aborting sending."); } + + public static void handleInvalidNumberException(InvalidNumberException e) { + System.err.println("Failed to parse recipient: " + e.getMessage()); + System.err.println("Aborting sending."); + } }