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';