From 1550577638afbfca624edaca85bbe647595fe4f6 Mon Sep 17 00:00:00 2001 From: Ron Rise Date: Fri, 7 Nov 2025 11:30:19 -0500 Subject: [PATCH] feat: add healthcheck endpoint and controller --- src/Controllers/HealthcheckController.php | 23 +++++++++++++++++++++++ src/Server.php | 7 +++++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/Controllers/HealthcheckController.php diff --git a/src/Controllers/HealthcheckController.php b/src/Controllers/HealthcheckController.php new file mode 100644 index 0000000..9bbc6f4 --- /dev/null +++ b/src/Controllers/HealthcheckController.php @@ -0,0 +1,23 @@ + 200, 'message' => 'Healthcheck OK'] + ); + } +} \ No newline at end of file diff --git a/src/Server.php b/src/Server.php index 5281dba..faa1a22 100644 --- a/src/Server.php +++ b/src/Server.php @@ -12,6 +12,7 @@ use League\Route\Http\Exception\NotFoundException; use League\Route\Router; use Nyholm\Psr7\Factory\Psr17Factory; use Siteworx\Config\Config as SWConfig; +use Siteworxpro\App\Controllers\HealthcheckController; use Siteworxpro\App\Controllers\IndexController; use Siteworxpro\App\Http\JsonResponseFactory; use Siteworxpro\App\Http\Middleware\CorsMiddleware; @@ -22,6 +23,7 @@ use Siteworxpro\App\Services\Facades\Config; use Siteworxpro\App\Services\Facades\Logger; use Siteworxpro\App\Services\ServiceProviders\LoggerServiceProvider; use Siteworxpro\App\Services\ServiceProviders\RedisServiceProvider; +use Siteworxpro\HttpStatus\CodesEnum; use Spiral\RoadRunner\Http\PSR7Worker; use Spiral\RoadRunner\Worker; @@ -140,6 +142,7 @@ class Server protected function registerRoutes(): void { $this->router->get('/', IndexController::class . '::get'); + $this->router->get('/healthz', HealthcheckController::class . '::get'); $this->router->middleware(new CorsMiddleware()); $this->router->middleware(new JwtMiddleware()); @@ -177,7 +180,7 @@ class Server $this->worker->respond( JsonResponseFactory::createJsonResponse( ['status_code' => 404, 'reason_phrase' => 'Not Found'], - 404 + CodesEnum::NOT_FOUND ) ); } catch (\Throwable $e) { @@ -194,7 +197,7 @@ class Server ]; } - $this->worker->respond(JsonResponseFactory::createJsonResponse($json, 500)); + $this->worker->respond(JsonResponseFactory::createJsonResponse($json, CodesEnum::INTERNAL_SERVER_ERROR)); } } }