Reformatted the ResponderContext

This commit is contained in:
mathias 2021-10-02 18:42:44 +02:00
parent 8f719cec41
commit ec96f7f860
No known key found for this signature in database
GPG Key ID: 8950DF62139C852A

View File

@ -35,14 +35,32 @@ public class ResponderContext extends SimpleHttpHandler {
JsonNode query = rootNode.get("query"); JsonNode query = rootNode.get("query");
CompletableFuture.runAsync(() -> { 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("sender").asText(), query.get("message").asText(), query.get("isGroup").asBoolean(),
query.get("groupParticipant").asText(), query.get("ruleId").asInt(), controller); 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 <code>true</code> if the provided message has been sent in a group, otherwise <code>false</code>
* @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 * Triggers the correct event
* *
@ -68,16 +86,16 @@ public class ResponderContext extends SimpleHttpHandler {
/** /**
* Sends the "not found"-reply * 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 * @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(); ObjectNode object = objectMapper.createObjectNode();
ArrayNode replies = object.withArray("replies"); ArrayNode replies = object.withArray("replies");
responder.getNotFoundHandler().handleRequest(query.get("isGroup").asBoolean() ? query.get("groupParticipant").asText() responder.getNotFoundHandler().handleRequest(sender, message).forEach(currentMessage ->
: query.get("sender").asText(), query.get("message").asText()).forEach(message -> replies.add(mapper.createObjectNode().put("message", currentMessage)));
replies.add(mapper.createObjectNode().put("message", message)));
controller.text(object.toString()); controller.text(object.toString());
} }