diff --git a/src/main/java/me/kavin/piped/ServerLauncher.java b/src/main/java/me/kavin/piped/ServerLauncher.java index 9dd57a8..120bc44 100644 --- a/src/main/java/me/kavin/piped/ServerLauncher.java +++ b/src/main/java/me/kavin/piped/ServerLauncher.java @@ -44,7 +44,13 @@ public class ServerLauncher extends MultithreadedHttpServerLauncher { AsyncServlet mainServlet(Executor executor) { RoutingServlet router = RoutingServlet.create() - .map(GET, "/healthcheck", request -> getRawResponse("OK".getBytes(UTF_8), "text/plain", "no-store")) + .map(GET, "/healthcheck", AsyncServlet.ofBlocking(executor, request -> { + try (Session ignored = DatabaseSessionFactory.createSession()) { + return getRawResponse("OK".getBytes(UTF_8), "text/plain", "no-store"); + } catch (Exception e) { + return getErrorResponse(e, request.getPath()); + } + })) .map(GET, "/version", AsyncServlet.ofBlocking(executor, request -> getRawResponse(Constants.VERSION.getBytes(UTF_8), "text/plain", "no-store"))) .map(HttpMethod.OPTIONS, "/*", request -> HttpResponse.ofCode(200)) .map(GET, "/webhooks/pubsub", request -> HttpResponse.ok200().withPlainText(Objects.requireNonNull(request.getQueryParameter("hub.challenge")))) diff --git a/testing/api-test.sh b/testing/api-test.sh index 67b947f..045bf11 100755 --- a/testing/api-test.sh +++ b/testing/api-test.sh @@ -3,6 +3,9 @@ CURLOPTS=(-i -s -S -o /dev/null -f -w "%{http_code}\tTime:\t%{time_starttransfer}\t%{url_effective}\n") HOST=127.0.0.1:8080 +# Healthcheck Test +curl ${CURLOPTS[@]} $HOST/healthcheck || exit 1 + # Version Test curl ${CURLOPTS[@]} $HOST/version || exit 1