]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/StartLinkCommand.java
1 package org
.asamk
.signal
.commands
;
3 import org
.asamk
.signal
.commands
.exceptions
.CommandException
;
4 import org
.asamk
.signal
.commands
.exceptions
.IOErrorException
;
5 import org
.asamk
.signal
.commands
.exceptions
.UserErrorException
;
6 import org
.asamk
.signal
.manager
.MultiAccountManager
;
7 import org
.asamk
.signal
.output
.JsonWriter
;
8 import org
.slf4j
.Logger
;
9 import org
.slf4j
.LoggerFactory
;
11 import java
.io
.IOException
;
13 import java
.util
.concurrent
.TimeoutException
;
15 public class StartLinkCommand
implements JsonRpcMultiCommand
<Void
> {
17 private static final Logger logger
= LoggerFactory
.getLogger(StartLinkCommand
.class);
20 public String
getName() {
25 public void handleCommand(
27 final MultiAccountManager m
,
28 final JsonWriter jsonWriter
29 ) throws CommandException
{
30 final URI deviceLinkUri
;
32 deviceLinkUri
= m
.getNewProvisioningDeviceLinkUri();
33 } catch (TimeoutException e
) {
34 throw new UserErrorException("Device link creation timed out, please try again.");
35 } catch (IOException e
) {
36 throw new IOErrorException("Link request error: " + e
.getMessage(), e
);
39 jsonWriter
.write(new JsonLink(deviceLinkUri
.toString()));
42 private record JsonLink(String deviceLinkUri
) {}