<?php
namespace App\Controller;
use App\Entity\Category;
use App\Service\SoapService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class StorefrontController extends AbstractController {
/** @var EntityManagerInterface */
protected $entityManager;
public function __construct(EntityManagerInterface $entityManager) {
$this->entityManager = $entityManager;
}
/**
* @Route(
* "/",
* name="index"
* )
*/
public function indexAction(): Response {
return $this->render('page/index.html.twig');
}
/**
* @Route(
* "/der-ablauf",
* name="flow"
* )
*/
public function flowAction(): Response {
return $this->render('page/flow.html.twig');
}
/**
* @Route(
* "/kategorien",
* name="categories"
* )
*/
public function categoriesAction(): Response {
return $this->render('page/category/list.html.twig');
}
/**
* @Route(
* "/produkte/{categoryId}",
* name="products"
* )
*/
public function productsAction(int $categoryId = null): Response {
$category = null;
if ($categoryId) {
$category = $this->entityManager->getRepository(Category::class)->find($categoryId);
}
return $this->render('page/product/list.html.twig', [
'category' => $category,
]);
}
/**
* @Route(
* "/faq",
* name="faq"
* )
*/
public function faqAction(): Response {
return $this->render('page/faq.html.twig');
}
/**
* @Route(
* "/impressum",
* name="imprint"
* )
*/
public function imprintAction(): Response {
return $this->render('page/imprint.html.twig');
}
/**
* @Route(
* "/datenschutz",
* name="privacy"
* )
*/
public function privacyAction(): Response {
return $this->render('page/privacy.html.twig');
}
/**
* @Route(
* "/get-version",
* name="version"
* )
*/
public function getVersion(SoapService $soapService): Response {
$version = $soapService->getVersion();
return $this->render('soap/get_version.html.twig', [
'version' => $version,
]);
}
}