diff --git a/.gitignore b/.gitignore index ff87634..7c8b966 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ vendor/ -node_modules/ \ No newline at end of file +node_modules/ +data/ \ No newline at end of file diff --git a/app/View/ViewController.php b/app/View/ViewController.php index a9f4ccc..e6c6196 100644 --- a/app/View/ViewController.php +++ b/app/View/ViewController.php @@ -2,8 +2,12 @@ namespace App\View; +use App\Text\CreateTextDto; use App\Text\TextRepository; +use App\Text\UseCases\CreateText; +use App\Text\UseCases\CreateTextRequest; use Psr\Http\Message\ResponseInterface as Response; +use Psr\Http\Message\ServerRequestInterface as Request; class ViewController { @@ -34,4 +38,21 @@ class ViewController return $response; } + + public function createText( + Request $request, + Response $response, + CreateText $createTextUseCase, + ): Response { + $data = $request->getParsedBody(); + $name = $data['name'] ?? ''; + + if (!empty($name)) { + $createTextUseCase->execute(new CreateTextRequest( + name: $name, + )); + } + + return $response->withHeader('Location', '/admin/texts')->withStatus(302); + } } diff --git a/bootstrap/app.php b/bootstrap/app.php index 5d081cd..3299b05 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -13,5 +13,6 @@ $app->addErrorMiddleware(true, true, true); $app->get('/admin', [ViewController::class, 'admin']); $app->get('/admin/texts', [ViewController::class, 'texts']); +$app->post('/admin/texts', [ViewController::class, 'createText']); return $app; diff --git a/data/texts.json b/data/texts.json deleted file mode 100644 index fe51488..0000000 --- a/data/texts.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/views/templates/texts.php b/views/templates/texts.php index b5058ab..24c2c92 100644 --- a/views/templates/texts.php +++ b/views/templates/texts.php @@ -9,7 +9,9 @@