try our sister game minceraft! #1

Merged
rrise merged 3 commits from stub-controllers into master 2025-05-14 16:45:30 +00:00
5 changed files with 119 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
on: on:
create: create:
tags: tags:
- '*' - 'v*'
name: 🏗️✨ Build Workflow name: 🏗️✨ Build Workflow

View File

@@ -0,0 +1,46 @@
<?php
declare(strict_types=1);
namespace Siteworxpro\App\Controllers;
use League\Route\Http\Exception\NotFoundException;
use Nyholm\Psr7\ServerRequest;
use Psr\Http\Message\ResponseInterface;
abstract class Controller implements ControllerInterface
{
/**
* @param ServerRequest $request
* @return ResponseInterface
* @throws NotFoundException
*/
public function get(ServerRequest $request): ResponseInterface
{
throw new NotFoundException("not found");
}
/**
* @throws NotFoundException
*/
public function post(ServerRequest $request): ResponseInterface
{
throw new NotFoundException("not found");
}
/**
* @throws NotFoundException
*/
public function delete(ServerRequest $request): ResponseInterface
{
throw new NotFoundException("not found");
}
/**
* @throws NotFoundException
*/
public function patch(ServerRequest $request): ResponseInterface
{
throw new NotFoundException("not found");
}
}

View File

@@ -0,0 +1,43 @@
<?php
declare(strict_types=1);
namespace Siteworxpro\App\Controllers;
use Nyholm\Psr7\ServerRequest;
use Psr\Http\Message\ResponseInterface;
interface ControllerInterface
{
/**
* Handle the request and return a response.
*
* @param ServerRequest $request The request data.
* @return ResponseInterface The response data.
*/
public function get(ServerRequest $request): ResponseInterface;
/**
* Handle the request and return a response.
*
* @param ServerRequest $request The request data.
* @return ResponseInterface The response data.
*/
public function post(ServerRequest $request): ResponseInterface;
/**
* Handle the request and return a response.
*
* @param ServerRequest $request The request data.
* @return ResponseInterface The response data.
*/
public function delete(ServerRequest $request): ResponseInterface;
/**
* Handle the request and return a response.
*
* @param ServerRequest $request The request data.
* @return ResponseInterface The response data.
*/
public function patch(ServerRequest $request): ResponseInterface;
}

View File

@@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
namespace Siteworxpro\App\Controllers;
use Nyholm\Psr7\ServerRequest;
use Psr\Http\Message\ResponseInterface;
use Siteworxpro\App\Http\JsonResponseFactory;
/**
* Class IndexController
*
* This class handles the index route of the application.
*/
class IndexController extends Controller
{
/**
* Handles the GET request for the index route.
*
* @throws \JsonException
*/
public function get(ServerRequest $request): ResponseInterface
{
return JsonResponseFactory::createJsonResponse(['status_code' => 200, 'message' => 'Server is running']);
}
}

View File

@@ -10,6 +10,7 @@ use League\Route\Http\Exception\MethodNotAllowedException;
use League\Route\Http\Exception\NotFoundException; 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 Siteworxpro\App\Controllers\IndexController;
use Siteworxpro\App\Facades\Config; use Siteworxpro\App\Facades\Config;
use Siteworxpro\App\Facades\Logger; use Siteworxpro\App\Facades\Logger;
use Siteworxpro\App\Http\JsonResponseFactory; use Siteworxpro\App\Http\JsonResponseFactory;
@@ -113,10 +114,7 @@ class Server
*/ */
protected function registerRoutes(): void protected function registerRoutes(): void
{ {
$this->router->get('/', function () { $this->router->get('/', IndexController::class . '::get');
return JsonResponseFactory::createJsonResponse(['status_code' => 200, 'message' => 'Server is running']);
});
$this->router->middleware(new CorsMiddleware()); $this->router->middleware(new CorsMiddleware());
} }