src/Controller/HomeController.php line 127

  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. use App\Entity\VideoAuthorOrganization;
  23. use Symfony\Component\Filesystem\Filesystem;
  24. use Symfony\Component\Filesystem\Path;
  25. use Symfony\Component\Mime\Email;
  26. use Symfony\Component\Mime\Address;
  27. use Symfony\Component\Mailer\MailerInterface;
  28. class HomeController extends AbstractController
  29. {
  30.     private $settings;
  31.     private $entityManager;
  32.     private $projectRepo;
  33.     private $userRepo;
  34.     private $videoRepo;
  35.     private $encoders;
  36.     private $normalizers;
  37.     private $serializer;
  38.     private $editions;
  39.     
  40.     public function __construct(
  41.         SettingsRepository $settingsRepository,
  42.         EntityManagerInterface $entityManager,
  43.         UserRepository $userRepository,
  44.         EditionRepository $editionRepository,
  45.         ProjectRepository $projectRepository,
  46.         VideoRepository $videoRepository)
  47.     {
  48.         $this->settings = $settingsRepository->findOneById(1);
  49.         $this->entityManager = $entityManager;
  50.         $this->userRepo = $userRepository;
  51.         $this->projectRepo = $projectRepository;
  52.         $this->encoders = [new XmlEncoder(), new JsonEncoder()];
  53.         $this->normalizers = [new DateTimeNormalizer(), new ObjectNormalizer()];
  54.         $this->serializer = new Serializer($this->normalizers, $this->encoders);
  55.         $this->editions = $editionRepository->findAll();
  56.         $this->videoRepo = $videoRepository;
  57.     }
  58.     
  59.     #[Route('/emailtest')]
  60.     public function emailTest(Request $request, MailerInterface $mailer): Response
  61.     {
  62.         //         foreach ($this->videoRepo->findAll() as $video){
  63.         //             $videoAuthorOrg = new VideoAuthorOrganization();
  64.         //             $videoAuthorOrg
  65.         //                 ->setVideo($video)
  66.         //                 ->setAuthor($video->getAuthor())
  67.         //             ;
  68.         
  69.         //             $this->entityManager->persist($videoAuthorOrg);
  70.         //             $this->entityManager->flush();
  71.         //         }
  72.         
  73.         $email = (new Email())
  74.         ->from(new Address($this->settings->getContactEmail(), strip_tags($this->settings->getTitle())))
  75.         ->to('lotusdakiny@outlook.com')
  76.         ->subject('Prueba')
  77.         ->html('prueba')
  78.         ;
  79.         
  80.         $mailer->send($email);
  81.         return new Response('ok');
  82.     }
  83.     
  84.     #[Route('/test')]
  85.     public function test(Request $request): Response
  86.     {
  87.         $projectDir = $this->getParameter('kernel.project_dir');
  88.         $filesystem = new Filesystem();
  89.         $filesystem->mkdir($projectDir.'/public/uploads/flips/4', 0700);
  90.         $filesystem->dumpFile($projectDir.'/public/uploads/flips/4/flip.txt', '');
  91.         
  92.         return new Response($projectDir);
  93.     }
  94.     
  95.     #[Route('/', name: 'app_home')]
  96.     public function index(Request $request): Response
  97.     {
  98. //         // usually you'll want to make sure the user is authenticated first
  99. //         //         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
  100. //         $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED');
  101. //         // returns your User object, or null if the user is not authenticated
  102. //         // use inline documentation to tell your editor your exact User class
  103. //         /** @var \App\Entity\User $user */
  104. //         $user = $this->getUser();
  105.         
  106.         return $this->render('home/index.html.twig', [
  107.             'settings' => $this->settings,
  108.             'editions' => $this->editions,
  109.             'videos' => $this->videoRepo->findBy([], ['id' => 'ASC']),
  110.         ]);
  111.     }
  112.     
  113.     
  114.     #[Route('/politica-privacidad', name: 'app_privacy_policy')]
  115.     public function privacyPolicy(Request $request)
  116.     {
  117.         return $this->render('policy/privacy_policy.html.twig', [
  118.             'settings' => $this->settings,
  119.             'user' => $this->getUser(),
  120.         ]);
  121.     }
  122.     
  123.     #[Route('/aviso-legal', name: 'app_legal_notice')]
  124.     public function legalNotice(Request $request)
  125.     {
  126.         return $this->render('policy/legal_notice.html.twig', [
  127.             'settings' => $this->settings,
  128.             'user' => $this->getUser(),
  129.         ]);
  130.     }
  131.     
  132.     #[Route('/politica-cookies', name: 'app_cookies_policy')]
  133.     public function cookiesPolicy(Request $request)
  134.     {
  135.         return $this->render('policy/cookies_policy.html.twig', [
  136.             'settings' => $this->settings,
  137.             'user' => $this->getUser(),
  138.         ]);
  139.     }
  140.     
  141. }