]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/SendMessageRequestResponseCommand.java
146ebaf29e983558f46e2e97e79554cab28a854d
[signal-cli] / src / main / java / org / asamk / signal / commands / SendMessageRequestResponseCommand.java
1 package org.asamk.signal.commands;
2
3 import net.sourceforge.argparse4j.impl.Arguments;
4 import net.sourceforge.argparse4j.inf.Namespace;
5 import net.sourceforge.argparse4j.inf.Subparser;
6
7 import org.asamk.signal.commands.exceptions.CommandException;
8 import org.asamk.signal.manager.Manager;
9 import org.asamk.signal.manager.api.MessageEnvelope.Sync.MessageRequestResponse.Type;
10 import org.asamk.signal.output.OutputWriter;
11 import org.asamk.signal.util.CommandUtil;
12
13 public class SendMessageRequestResponseCommand implements JsonRpcLocalCommand {
14
15 @Override
16 public String getName() {
17 return "sendMessageRequestResponse";
18 }
19
20 @Override
21 public void attachToSubparser(final Subparser subparser) {
22 subparser.help("Send response to a message request to linked devices.");
23 subparser.addArgument("-g", "--group-id", "--group").help("Specify the recipient group ID.").nargs("*");
24 subparser.addArgument("recipient").help("Specify the recipients' phone number.").nargs("*");
25 subparser.addArgument("-u", "--username").help("Specify the recipient username or username link.").nargs("*");
26 subparser.addArgument("--type")
27 .help("Type of message request response")
28 .type(Arguments.enumStringType(MessageRequestResponseType.class))
29 .required(true);
30 }
31
32 @Override
33 public void handleCommand(
34 final Namespace ns, final Manager m, final OutputWriter outputWriter
35 ) throws CommandException {
36 final var recipientStrings = ns.<String>getList("recipient");
37 final var groupIdStrings = ns.<String>getList("group-id");
38 final var usernameStrings = ns.<String>getList("username");
39 final var type = ns.<MessageRequestResponseType>get("type");
40
41 final var recipientIdentifiers = CommandUtil.getRecipientIdentifiers(m,
42 false,
43 recipientStrings,
44 groupIdStrings,
45 usernameStrings);
46 m.sendMessageRequestResponse(type == MessageRequestResponseType.ACCEPT ? Type.ACCEPT : Type.DELETE,
47 recipientIdentifiers);
48 }
49 }