X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/a780be70dd98679b732baa9ef0a4645126d31b08..e5a67d6ce1312fe118e99b8bc8fb2f55ed1dbcf2:/src/main/java/org/asamk/signal/http/HttpServerHandler.java diff --git a/src/main/java/org/asamk/signal/http/HttpServerHandler.java b/src/main/java/org/asamk/signal/http/HttpServerHandler.java index f7f2768d..39e7f51e 100644 --- a/src/main/java/org/asamk/signal/http/HttpServerHandler.java +++ b/src/main/java/org/asamk/signal/http/HttpServerHandler.java @@ -13,7 +13,6 @@ import org.asamk.signal.jsonrpc.SignalJsonRpcCommandHandler; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.MultiAccountManager; import org.asamk.signal.manager.api.Pair; -import org.asamk.signal.manager.util.Utils; import org.asamk.signal.util.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,6 +58,7 @@ public class HttpServerHandler { server.createContext("/api/v1/rpc", this::handleRpcEndpoint); server.createContext("/api/v1/events", this::handleEventsEndpoint); + server.createContext("/api/v1/check", this::handleCheckEndpoint); server.start(); } @@ -88,7 +88,8 @@ public class HttpServerHandler { return; } - if (!"application/json".equals(httpExchange.getRequestHeaders().getFirst("Content-Type"))) { + final var contentType = httpExchange.getRequestHeaders().getFirst("Content-Type"); + if (contentType == null || !contentType.startsWith("application/json")) { sendResponse(415, null, httpExchange); return; } @@ -136,7 +137,7 @@ public class HttpServerHandler { try { final var queryString = httpExchange.getRequestURI().getQuery(); - final var query = queryString == null ? Map.of() : Utils.getQueryMap(queryString); + final var query = queryString == null ? Map.of() : Util.getQueryMap(queryString); List managers = getManagerFromQuery(query); if (managers == null) { @@ -186,6 +187,19 @@ public class HttpServerHandler { } } + private void handleCheckEndpoint(HttpExchange httpExchange) throws IOException { + if (!"/api/v1/check".equals(httpExchange.getRequestURI().getPath())) { + sendResponse(404, null, httpExchange); + return; + } + if (!"GET".equals(httpExchange.getRequestMethod())) { + sendResponse(405, null, httpExchange); + return; + } + + sendResponse(200, null, httpExchange); + } + private List getManagerFromQuery(final Map query) { List managers; if (m != null) {