1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.impl
.Arguments
;
4 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
5 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
7 import org
.asamk
.signal
.commands
.exceptions
.CommandException
;
8 import org
.asamk
.signal
.commands
.exceptions
.IOErrorException
;
9 import org
.asamk
.signal
.manager
.Manager
;
10 import org
.asamk
.signal
.output
.OutputWriter
;
11 import org
.asamk
.signal
.util
.CommandUtil
;
13 import java
.io
.IOException
;
15 public class RemoveContactCommand
implements JsonRpcLocalCommand
{
18 public String
getName() {
19 return "removeContact";
23 public void attachToSubparser(final Subparser subparser
) {
24 subparser
.help("Remove the details of a given contact");
25 subparser
.addArgument("recipient").help("Contact number");
26 subparser
.addArgument("--forget")
27 .action(Arguments
.storeTrue())
28 .help("Delete all data associated with this contact, including identity keys and sessions.");
32 public void handleCommand(
33 final Namespace ns
, final Manager m
, final OutputWriter outputWriter
34 ) throws CommandException
{
35 var recipientString
= ns
.getString("recipient");
36 var recipient
= CommandUtil
.getSingleRecipientIdentifier(recipientString
, m
.getSelfNumber());
38 var forget
= Boolean
.TRUE
== ns
.getBoolean("forget");
41 m
.deleteRecipient(recipient
);
43 m
.deleteContact(recipient
);
45 } catch (IOException e
) {
46 throw new IOErrorException("Remove contact error: " + e
.getMessage(), e
);