First commit

This commit is contained in:
2022-02-22 19:07:39 +01:00
commit b67fac10bc
28 changed files with 1194 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
<?php
namespace KamilCraftApi\App\Controllers;
use KamilCraftApi\App\Models\Category;
use KamilCraftApi\Request\Request;
use KamilCraftApi\Response;
class CategoriesController extends Controller
{
private Category $category;
public function __construct(Request $request) {
parent::__construct();
$this->category = new Category($request);
}
public function showWhereName(string $slug): Response
{
if ( ! ($category = $this->category->getCategoryWhereName($slug)) ) {
return (new Response())->json([
'message' => 'Not found category'
], 404);
}
return (new Response())->json($category);
}
public function show(int $id): Response
{
if ( ! ($category = $this->category->getCategory($id)) ) {
return (new Response())->json([
'message' => 'Not found category'
], 404);
}
return (new Response())->json($category);
}
public function __invoke(): Response
{
$categories = $this->category;
return (new Response())->json($categories());
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace KamilCraftApi\App\Controllers;
use KamilCraftApi\Interfaces\ControllerInterface;
use KamilCraftApi\Response;
class Controller implements ControllerInterface
{
private Response $response;
public function __construct()
{
$this->response = new Response();
}
protected function response(): Response
{
return $this->response;
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace KamilCraftApi\App\Controllers;
use KamilCraftApi\Interfaces\ControllerInterface;
use KamilCraftApi\Request\Request;
use KamilCraftApi\Response;
class HomeController implements ControllerInterface
{
public function __invoke(Request $request): Response
{
return (new Response())->json((object)[
'message' => 'Hello World'
]);
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace KamilCraftApi\App\Controllers;
use KamilCraftApi\App\Models\Project;
use KamilCraftApi\Response;
class ProjectController extends Controller
{
private Project $project;
public function __construct()
{
parent::__construct();
$this->project = new Project();
}
public function showWhereCategory(string $category): Response
{
$projects = $this->project->getProjectWhereCategory($category);
return (new Response())->json($projects);
}
public function show(int $id): Response
{
if ( ! ($project = $this->project->getProject($id)) ) {
return (new Response())->json([
'message' => 'Not found project'
], 404);
}
return (new Response())->json($project);
}
public function __invoke(): Response
{
$projects = $this->project;
return (new Response())->json($projects());
}
}