feat: add healthcheck endpoint and controller
Some checks failed
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 1m42s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 1m35s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Failing after 1m31s
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 1m52s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Failing after 1m42s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Failing after 1m10s

This commit is contained in:
2025-11-07 11:30:19 -05:00
parent 204c6efdec
commit 1550577638
2 changed files with 28 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace Siteworxpro\App\Controllers;
use Nyholm\Psr7\ServerRequest;
use Psr\Http\Message\ResponseInterface;
use Siteworxpro\App\Http\JsonResponseFactory;
class HealthcheckController extends Controller
{
/**
* @throws \JsonException
*/
public function get(ServerRequest $request): ResponseInterface
{
return JsonResponseFactory::createJsonResponse(
['status_code' => 200, 'message' => 'Healthcheck OK']
);
}
}

View File

@@ -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));
}
}
}