From b76355018ed4c87cfebf445452be80144a5c5784 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Sun, 2 Nov 2025 23:38:10 +0200 Subject: [PATCH] add login user use case --- src/User/UserController.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/User/UserController.php b/src/User/UserController.php index 28c74e8..c1cbbd9 100644 --- a/src/User/UserController.php +++ b/src/User/UserController.php @@ -2,12 +2,18 @@ namespace FreightQuote\User; +use FreightQuote\User\UseCases\LoginUser; +use FreightQuote\User\UseCases\LoginUserRequest; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Views\Twig; class UserController { + public function __construct( + private UserRepository $userRepo, + ) {} + public function home(Request $request, Response $response): Response { $view = Twig::fromRequest($request); @@ -26,6 +32,19 @@ class UserController public function doLogin(Request $request, Response $response): Response { + $view = Twig::fromRequest($request); + $body = $request->getParsedBody(); + $email = $body['email']; + $password = $body['password']; + $useCase = new LoginUser( + new LoginUserRequest($email, $password), + $this->userRepo, + ); + $result = $useCase->execute(); + if (!$result) { + return $view->render($response, 'login.html.twig') + ->withStatus(401); + } $_SESSION['user_id'] = 1; $_SESSION['user'] = ['id' => 1, 'email' => 'email@email.com']; $location = '/dashboard';