]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/FinishLinkCommand.java
Fix json deserialization for request params
[signal-cli] / src / main / java / org / asamk / signal / commands / FinishLinkCommand.java
index 40c241a2b36e7f26f5f795e93ecc6f3b511d3b52..2d1422aaa0126c68c48036d3d7c17bfdbf1925ae 100644 (file)
@@ -2,12 +2,12 @@ package org.asamk.signal.commands;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 
-import org.asamk.signal.JsonWriter;
 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;
 
@@ -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) {}
 }