add login user use case

This commit is contained in:
Yisroel Baum 2025-11-02 23:38:10 +02:00
parent 3e259ee5e8
commit b76355018e
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

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