<?php
namespace App\Controller;
use App\Controller\Catalog\CatalogRepository;
use Doctrine\DBAL\Connection;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class PageController extends BaseController
{
/**
* @Route("/", name="home", methods={"GET"})
*/
public function home(Request $request, Connection $db, CatalogRepository $catalog): Response
{
$products = $catalog->listProducts(15);
return $this->render('index.html.twig', [
'user' => $this->publicUser($this->getAuthorizedUser($request, $db)),
'catalog_products' => $products,
'catalog_payload_json' => $catalog->payloadJson($products),
]);
}
/**
* @Route("/profile", name="profile", methods={"GET"})
*/
public function profile(Request $request, Connection $db): Response
{
$user = $this->getAuthorizedUser($request, $db);
if (!$user) {
return $this->redirectToRoute('login_page');
}
return $this->render('profile.html.twig', [
'user' => $this->publicUser($user),
]);
}
/**
* @Route("/login", name="login_page", methods={"GET"})
*/
public function loginPage(): Response
{
return $this->render('auth_page.html.twig', ['screen' => 'login']);
}
/**
* @Route("/register", name="register_page", methods={"GET"})
*/
public function registerPage(): Response
{
return $this->render('auth_page.html.twig', ['screen' => 'register']);
}
}