]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/SendMessageRequestResponseCommand.java
Reformat files
[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,
35 final Manager m,
36 final OutputWriter outputWriter
37 ) throws CommandException {
38 final var recipientStrings = ns.<String>getList("recipient");
39 final var groupIdStrings = ns.<String>getList("group-id");
40 final var usernameStrings = ns.<String>getList("username");
41 final var typeObj = ns.get("type");
42 final var type = typeObj instanceof MessageRequestResponseType t
43 ? t
44 : MessageRequestResponseType.valueOf(((String) typeObj).toUpperCase());
45
46 final var recipientIdentifiers = CommandUtil.getRecipientIdentifiers(m,
47 false,
48 recipientStrings,
49 groupIdStrings,
50 usernameStrings);
51 m.sendMessageRequestResponse(type == MessageRequestResponseType.ACCEPT ? Type.ACCEPT : Type.DELETE,
52 recipientIdentifiers);
53 }
54 }