1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
4 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
6 import org
.asamk
.signal
.OutputWriter
;
7 import org
.asamk
.signal
.commands
.exceptions
.CommandException
;
8 import org
.asamk
.signal
.commands
.exceptions
.IOErrorException
;
9 import org
.asamk
.signal
.commands
.exceptions
.UnexpectedErrorException
;
10 import org
.asamk
.signal
.manager
.Manager
;
11 import org
.whispersystems
.signalservice
.internal
.contacts
.crypto
.UnauthenticatedResponseException
;
13 import java
.io
.IOException
;
14 import java
.util
.Optional
;
16 public class SetPinCommand
implements JsonRpcLocalCommand
{
19 public String
getName() {
24 public void attachToSubparser(final Subparser subparser
) {
25 subparser
.help("Set a registration lock pin, to prevent others from registering this number.");
26 subparser
.addArgument("pin")
27 .help("The registration lock PIN, that will be required for new registrations (resets after 7 days of inactivity)");
31 public void handleCommand(
32 final Namespace ns
, final Manager m
, final OutputWriter outputWriter
33 ) throws CommandException
{
35 var registrationLockPin
= ns
.getString("pin");
36 m
.setRegistrationLockPin(Optional
.of(registrationLockPin
));
37 } catch (UnauthenticatedResponseException e
) {
38 throw new UnexpectedErrorException("Set pin error failed with unauthenticated response: " + e
.getMessage(),
40 } catch (IOException e
) {
41 throw new IOErrorException("Set pin error: " + e
.getMessage(), e
);