]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java
Handle rate limit exception correctly when querying usernames
[signal-cli] / src / main / java / org / asamk / signal / commands / GetUserStatusCommand.java
index 09adabd4a16291b0e13988173bc2f357fa842146..eab4155c710beebd7536a2af53edacea91fa601c 100644 (file)
@@ -43,7 +43,9 @@ public class GetUserStatusCommand implements JsonRpcLocalCommand {
 
     @Override
     public void handleCommand(
-            final Namespace ns, final Manager m, final OutputWriter outputWriter
+            final Namespace ns,
+            final Manager m,
+            final OutputWriter outputWriter
     ) throws CommandException {
         // Get a map of registration statuses
         Map<String, UserStatus> registered;
@@ -62,9 +64,16 @@ public class GetUserStatusCommand implements JsonRpcLocalCommand {
         }
 
         final var usernames = ns.<String>getList("username");
-        final var registeredUsernames = usernames == null
-                ? Map.<String, UsernameStatus>of()
-                : m.getUsernameStatus(new HashSet<>(usernames));
+        final Map<String, UsernameStatus> registeredUsernames;
+        try {
+            registeredUsernames = usernames == null ? Map.of() : m.getUsernameStatus(new HashSet<>(usernames));
+        } catch (IOException e) {
+            throw new IOErrorException("Unable to check if users are registered: "
+                    + e.getMessage()
+                    + " ("
+                    + e.getClass().getSimpleName()
+                    + ")", e);
+        }
 
         // Output
         switch (outputWriter) {