]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/JsonRpcCommand.java
Implement jsonRpc command
[signal-cli] / src / main / java / org / asamk / signal / commands / JsonRpcCommand.java
diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcCommand.java b/src/main/java/org/asamk/signal/commands/JsonRpcCommand.java
new file mode 100644 (file)
index 0000000..394b0f8
--- /dev/null
@@ -0,0 +1,22 @@
+package org.asamk.signal.commands;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import org.asamk.signal.OutputType;
+import org.asamk.signal.commands.exceptions.CommandException;
+import org.asamk.signal.manager.Manager;
+
+import java.util.Set;
+
+public interface JsonRpcCommand<T> extends Command {
+
+    default TypeReference<T> getRequestType() {
+        return null;
+    }
+
+    void handleCommand(T request, Manager m) throws CommandException;
+
+    default Set<OutputType> getSupportedOutputTypes() {
+        return Set.of(OutputType.JSON);
+    }
+}