]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/FinishLinkCommand.java
Extend getUserStatus command for usernames
[signal-cli] / src / main / java / org / asamk / signal / commands / FinishLinkCommand.java
index ce0de00020f85ac4f63076a517d7f5741cef2731..a0fa0ab7bde875b2b9ec1f94f9576dd48780ff9a 100644 (file)
@@ -6,7 +6,7 @@ import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.commands.exceptions.UserErrorException;
 import org.asamk.signal.manager.MultiAccountManager;
-import org.asamk.signal.manager.UserAlreadyExists;
+import org.asamk.signal.manager.api.UserAlreadyExistsException;
 import org.asamk.signal.output.JsonWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,7 +18,7 @@ import java.util.concurrent.TimeoutException;
 
 public class FinishLinkCommand implements JsonRpcMultiCommand<FinishLinkCommand.FinishLinkParams> {
 
-    private final static Logger logger = LoggerFactory.getLogger(FinishLinkCommand.class);
+    private static final Logger logger = LoggerFactory.getLogger(FinishLinkCommand.class);
 
     @Override
     public String getName() {
@@ -34,6 +34,9 @@ public class FinishLinkCommand implements JsonRpcMultiCommand<FinishLinkCommand.
     public void handleCommand(
             final FinishLinkParams request, final MultiAccountManager m, final JsonWriter jsonWriter
     ) throws CommandException {
+        if (request.deviceLinkUri() == null) {
+            throw new UserErrorException("Missing deviceLinkUri.");
+        }
         final URI deviceLinkUri;
         try {
             deviceLinkUri = new URI(request.deviceLinkUri());
@@ -55,8 +58,12 @@ public class FinishLinkCommand implements JsonRpcMultiCommand<FinishLinkCommand.
         } catch (TimeoutException e) {
             throw new UserErrorException("Link request timed out, please try again.");
         } catch (IOException e) {
-            throw new IOErrorException("Link request error: " + e.getMessage(), e);
-        } catch (UserAlreadyExists e) {
+            throw new IOErrorException("Link request error: "
+                    + e.getMessage()
+                    + " ("
+                    + e.getClass().getSimpleName()
+                    + ")", e);
+        } catch (UserAlreadyExistsException e) {
             throw new UserErrorException("The user "
                     + e.getNumber()
                     + " already exists\nDelete \""
@@ -67,7 +74,7 @@ public class FinishLinkCommand implements JsonRpcMultiCommand<FinishLinkCommand.
         jsonWriter.write(new JsonFinishLink(number));
     }
 
-    record FinishLinkParams(String deviceLinkUri, String deviceName) {}
+    public record FinishLinkParams(String deviceLinkUri, String deviceName) {}
 
     private record JsonFinishLink(String number) {}
 }