You've already forked Php-Template
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
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:
23
src/Controllers/HealthcheckController.php
Normal file
23
src/Controllers/HealthcheckController.php
Normal 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']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ use League\Route\Http\Exception\NotFoundException;
|
|||||||
use League\Route\Router;
|
use League\Route\Router;
|
||||||
use Nyholm\Psr7\Factory\Psr17Factory;
|
use Nyholm\Psr7\Factory\Psr17Factory;
|
||||||
use Siteworx\Config\Config as SWConfig;
|
use Siteworx\Config\Config as SWConfig;
|
||||||
|
use Siteworxpro\App\Controllers\HealthcheckController;
|
||||||
use Siteworxpro\App\Controllers\IndexController;
|
use Siteworxpro\App\Controllers\IndexController;
|
||||||
use Siteworxpro\App\Http\JsonResponseFactory;
|
use Siteworxpro\App\Http\JsonResponseFactory;
|
||||||
use Siteworxpro\App\Http\Middleware\CorsMiddleware;
|
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\Facades\Logger;
|
||||||
use Siteworxpro\App\Services\ServiceProviders\LoggerServiceProvider;
|
use Siteworxpro\App\Services\ServiceProviders\LoggerServiceProvider;
|
||||||
use Siteworxpro\App\Services\ServiceProviders\RedisServiceProvider;
|
use Siteworxpro\App\Services\ServiceProviders\RedisServiceProvider;
|
||||||
|
use Siteworxpro\HttpStatus\CodesEnum;
|
||||||
use Spiral\RoadRunner\Http\PSR7Worker;
|
use Spiral\RoadRunner\Http\PSR7Worker;
|
||||||
use Spiral\RoadRunner\Worker;
|
use Spiral\RoadRunner\Worker;
|
||||||
|
|
||||||
@@ -140,6 +142,7 @@ class Server
|
|||||||
protected function registerRoutes(): void
|
protected function registerRoutes(): void
|
||||||
{
|
{
|
||||||
$this->router->get('/', IndexController::class . '::get');
|
$this->router->get('/', IndexController::class . '::get');
|
||||||
|
$this->router->get('/healthz', HealthcheckController::class . '::get');
|
||||||
|
|
||||||
$this->router->middleware(new CorsMiddleware());
|
$this->router->middleware(new CorsMiddleware());
|
||||||
$this->router->middleware(new JwtMiddleware());
|
$this->router->middleware(new JwtMiddleware());
|
||||||
@@ -177,7 +180,7 @@ class Server
|
|||||||
$this->worker->respond(
|
$this->worker->respond(
|
||||||
JsonResponseFactory::createJsonResponse(
|
JsonResponseFactory::createJsonResponse(
|
||||||
['status_code' => 404, 'reason_phrase' => 'Not Found'],
|
['status_code' => 404, 'reason_phrase' => 'Not Found'],
|
||||||
404
|
CodesEnum::NOT_FOUND
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} catch (\Throwable $e) {
|
} 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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user