src/Controller/Front/HomeController.php line 76

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Application\Service\Session\SessionService;
  4. use App\Entity\System\Language;
  5. use App\Exception\MovedToNewInfrastructureException;
  6. use App\Service\EnvironmentService;
  7. use App\ViewManager\Landing\LandingService;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class HomeController extends AbstractController
  15. {
  16. public RequestStack $requestStack;
  17. private LandingService $landingService;
  18. private EnvironmentService $environmentService;
  19. private SessionService $sessionService;
  20. public function __construct(
  21. RequestStack $requestStack,
  22. LandingService $landingService,
  23. EnvironmentService $environmentService,
  24. SessionService $sessionService,
  25. ) {
  26. $this->requestStack = $requestStack;
  27. $this->landingService = $landingService;
  28. $this->environmentService = $environmentService;
  29. $this->sessionService = $sessionService;
  30. }
  31. /**
  32. * @Route("/", name="homepage_default", priority=-5, methods={"GET"})
  33. * @Route({
  34. * "default": "/",
  35. * "en": "/en/",
  36. * "es": "/es/",
  37. * "fr": "/fr/",
  38. * "de": "/de/",
  39. * "pt": "/pt/",
  40. * "el": "/el/",
  41. * "hr": "/hr/",
  42. * "it": "/it/",
  43. * "et": "/et/",
  44. * "da": "/da/",
  45. * "fi": "/fi/",
  46. * "ro": "/ro/",
  47. * "bg": "/bg/",
  48. * "hu": "/hu/",
  49. * "sk": "/sk/",
  50. * "si": "/si/",
  51. * "lt": "/lt/",
  52. * "lv": "/lv/",
  53. * "pl": "/pl/",
  54. * "nl": "/nl/",
  55. * "ru": "/ru/",
  56. * "no": "/no/",
  57. * "sv": "/sv/",
  58. * "cs": "/cs/"*
  59. * }, name="homepage", priority=-5, methods={"GET"})
  60. */
  61. public function corporative(Request $request): Response
  62. {
  63. if ($this->environmentService->isApi()) {
  64. return new JsonResponse(['code' => 'Bad request', 'message' => Response::HTTP_BAD_REQUEST, ], Response::HTTP_BAD_REQUEST);
  65. }
  66. if (!$this->environmentService->isStaging() && !$this->environmentService->isDev()) {
  67. throw new MovedToNewInfrastructureException('Page home migrated to new architecture');
  68. }
  69. $this->requestStack->getSession()->set('isHome', true);
  70. $isoCode = $this->sessionService->getLocale();
  71. $langFabImage = in_array($isoCode, [Language::SPANISH_ISO, Language::ENGLISH_ISO]) ? $isoCode : Language::ENGLISH_ISO;
  72. return $this->render(
  73. 'front/home/index.html.twig',
  74. [
  75. 'landingHtml' => $this->landingService->getLandingContentInternal('corporative-home'),
  76. 'metas' => [],
  77. 'iso_code_lang' => $isoCode,
  78. 'iso_code_lang_fab' => $langFabImage,
  79. 'show_tab_tag' => true,
  80. ]
  81. );
  82. }
  83. }