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
.manager
.Manager
;
9 import org
.asamk
.signal
.output
.OutputWriter
;
10 import org
.asamk
.signal
.util
.CommandUtil
;
12 public class RemoveContactCommand
implements JsonRpcLocalCommand
{
15 public String
getName() {
16 return "removeContact";
20 public void attachToSubparser(final Subparser subparser
) {
21 subparser
.help("Remove the details of a given contact");
22 subparser
.addArgument("recipient").help("Contact number");
23 final var mut
= subparser
.addMutuallyExclusiveGroup();
24 mut
.addArgument("--hide")
25 .action(Arguments
.storeTrue())
26 .help("Hide the contact in the contact list, but keep the data.");
27 mut
.addArgument("--forget")
28 .action(Arguments
.storeTrue())
29 .help("Delete all data associated with this contact, including identity keys and sessions.");
33 public void handleCommand(
34 final Namespace ns
, final Manager m
, final OutputWriter outputWriter
35 ) throws CommandException
{
36 var recipientString
= ns
.getString("recipient");
37 var recipient
= CommandUtil
.getSingleRecipientIdentifier(recipientString
, m
.getSelfNumber());
39 var hide
= Boolean
.TRUE
== ns
.getBoolean("hide");
40 var forget
= Boolean
.TRUE
== ns
.getBoolean("forget");
42 m
.hideRecipient(recipient
);
44 m
.deleteRecipient(recipient
);
46 m
.deleteContact(recipient
);