diff --git a/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java b/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java
index 7653bde..d965bab 100644
--- a/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java
+++ b/src/main/java/de/gnmyt/autoresponder/http/contexts/ResponderContext.java
@@ -35,14 +35,32 @@ public class ResponderContext extends SimpleHttpHandler {
JsonNode query = rootNode.get("query");
CompletableFuture.runAsync(() -> {
- triggerEvent(rootNode.get("appPackageName").asText(), rootNode.get("messengerPackageName").asText(),
+ run(rootNode.get("appPackageName").asText(), rootNode.get("messengerPackageName").asText(),
query.get("sender").asText(), query.get("message").asText(), query.get("isGroup").asBoolean(),
query.get("groupParticipant").asText(), query.get("ruleId").asInt(), controller);
-
- if (!controller.isResponseSent()) sendNotFoundReply(query, controller);
});
}
+ /**
+ * Runs the context with all variables
+ *
+ * @param appPackageName The package name of the responder app
+ * @param messengerPackageName The package name of your whatsapp instance
+ * @param sender The sender of the message
+ * @param message The message itself
+ * @param isGroup true
if the provided message has been sent in a group, otherwise false
+ * @param groupParticipant (Optional) The group participant
+ * @param ruleId The id of the rule that has been executed
+ * @param controller The response controller of the executed request
+ */
+ public void run(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup,
+ String groupParticipant, int ruleId, HttpResponseController controller) {
+
+ triggerEvent(appPackageName, messengerPackageName, sender, message, isGroup, groupParticipant, ruleId, controller);
+
+ if (!controller.isResponseSent()) sendNotFoundReply(isGroup ? groupParticipant : sender, message, controller);
+ }
+
/**
* Triggers the correct event
*
@@ -68,16 +86,16 @@ public class ResponderContext extends SimpleHttpHandler {
/**
* Sends the "not found"-reply
*
- * @param query The query that the responder sent
+ * @param sender The sender of the message
+ * @param message The message itself
* @param controller The response controller from the request
*/
- public void sendNotFoundReply(JsonNode query, HttpResponseController controller) {
+ public void sendNotFoundReply(String sender, String message, HttpResponseController controller) {
ObjectNode object = objectMapper.createObjectNode();
ArrayNode replies = object.withArray("replies");
- responder.getNotFoundHandler().handleRequest(query.get("isGroup").asBoolean() ? query.get("groupParticipant").asText()
- : query.get("sender").asText(), query.get("message").asText()).forEach(message ->
- replies.add(mapper.createObjectNode().put("message", message)));
+ responder.getNotFoundHandler().handleRequest(sender, message).forEach(currentMessage ->
+ replies.add(mapper.createObjectNode().put("message", currentMessage)));
controller.text(object.toString());
}