src/Controller/EditionController.php line 63

  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Repository\SettingsRepository;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use App\Entity\User;
  10. use Symfony\Component\Serializer\Encoder\JsonEncoder;
  11. use Symfony\Component\Serializer\Encoder\XmlEncoder;
  12. use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
  13. use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
  14. use Symfony\Component\Serializer\Serializer;
  15. use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
  16. use App\Repository\UserRepository;
  17. use Doctrine\DBAL\Types\TimeImmutableType;
  18. use chillerlan\QRCode\QRCode;
  19. use App\Repository\ProjectRepository;
  20. use App\Repository\EditionRepository;
  21. use App\Repository\VideoRepository;
  22. class EditionController extends AbstractController
  23. {
  24.     private $settings;
  25.     private $entityManager;
  26.     private $projectgRepo;
  27.     private $editionRepo;
  28.     private $userRepo;
  29.     private $encoders;
  30.     private $normalizers;
  31.     private $serializer;
  32.     private $projects;
  33.     private $editions;
  34.     private $videoRepo;
  35.     
  36.     public function __construct(
  37.         SettingsRepository $settingsRepository,
  38.         EntityManagerInterface $entityManager,
  39.         UserRepository $userRepository,
  40.         ProjectRepository $projectRepository,
  41.         EditionRepository $editionRepository,
  42.         VideoRepository $videoRepository)
  43.     {
  44.         $this->settings = $settingsRepository->findOneById(1);
  45.         $this->entityManager = $entityManager;
  46.         $this->userRepo = $userRepository;
  47.         $this->projectgRepo = $projectRepository;
  48.         $this->editionRepo = $editionRepository;
  49.         $this->encoders = [new XmlEncoder(), new JsonEncoder()];
  50.         $this->normalizers = [new DateTimeNormalizer(), new ObjectNormalizer()];
  51.         $this->serializer = new Serializer($this->normalizers, $this->encoders);
  52.         //         $this->client = $client;
  53.         $this->projects = $projectRepository->findAll();
  54.         $this->videoRepo = $videoRepository;
  55.     }
  56.     
  57.     #[Route('/{name}/{year}', name: 'app_edition', requirements: ['name'=>'^(?!video).*','year' => '\d+'], priority: 2)]
  58.     public function index($name, $year): Response
  59.     {
  60.         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED');
  61.         /** @var \App\Entity\User $user */
  62.         $user = $this->getUser();
  63. //         $edition = $this->editionRepo->findOneByNameAndYear($name, $year);
  64. //         return new Response($edition->getTitle());
  65.         return $this->render('edition/index.html.twig', [
  66.             'edition' => $this->editionRepo->findOneByNameAndYear($name, $year),
  67.             'settings' => $this->settings,
  68. //             'user' => $user
  69.         ]);
  70.     }
  71. }