src/Controller/CobrandingController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\WidgetRequest;
  4. use App\Form\WidgetForm;
  5. use App\Manager\CobrandingManager;
  6. use App\Service\Internal\CmsService;
  7. use App\Service\Internal\ContactService;
  8. use App\Service\Internal\HomePageService;
  9. use App\Service\Internal\WidgetService;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Contracts\Translation\TranslatorInterface;
  13. class CobrandingController extends AbstractController
  14. {
  15. public function index(
  16. Request $request,
  17. HomePageService $newsPageService,
  18. ContactService $contactService,
  19. CmsService $cmsService,
  20. CobrandingManager $manager,
  21. WidgetService $widgetService,
  22. TranslatorInterface $translator
  23. ) {
  24. $parameters = $newsPageService->getRenderParameters();
  25. $cmsPages = $cmsService->getPages();
  26. $menuPages = [];
  27. $footerPages = [];
  28. foreach ($cmsPages as $page) {
  29. if ($page->hook == 'MENU') {
  30. $menuPages[$page->id] = $page;
  31. }
  32. if ($page->hook == 'FOOTER') {
  33. $footerPages[$page->id] = $page;
  34. }
  35. }
  36. $parameters['menuPages'] = $menuPages;
  37. $parameters['footerPages'] = $footerPages;
  38. $subNetworks = $manager->getAllSubNetworks();
  39. $form = $this->createForm(WidgetForm::class, new WidgetRequest(), ['subNetworks' => $subNetworks]);
  40. if ($request->getMethod() == 'POST') {
  41. $flashbag = $request->getSession()->getFlashBag();
  42. $flashbag->clear();
  43. $captchaResponse = $request->request->get('g-recaptcha-response');
  44. if (!empty($captchaResponse)) {
  45. $isValidCaptcha = $contactService->postCaptchaToGoogle($captchaResponse);
  46. if ($isValidCaptcha) {
  47. $form->handleRequest($request);
  48. $flashbag = $request->getSession()->getFlashBag();
  49. $flashbag->clear();
  50. $widgetRequest = $form->getData();
  51. $widgetRequest->setDomain($manager->cleanDomain($widgetRequest->getDomain()));
  52. $widgetRequest->setDocumentationUrl($manager->buildDocumentationUrl($widgetRequest));
  53. $parameters['documentationUrl'] = $widgetRequest->getDocumentationUrl();
  54. $widgetService->postWidgetDemand($widgetRequest);
  55. return $this->render('pages/sim/cobranding-documentation.html.twig', $parameters);
  56. } else {
  57. $flashbag->add('error', $translator->trans('captcha.error'));
  58. }
  59. } else {
  60. $flashbag->add('error', $translator->trans('captcha.label'));
  61. }
  62. }
  63. $parameters['form'] = $form->createView();
  64. return $this->render('pages/sim/cobranding.html.twig', $parameters);
  65. }
  66. public function generateDocumentation(Request $request)
  67. {
  68. $params = $request->query->all();
  69. $params['baseUrl'] = 'https://' . $_SERVER['SERVER_NAME'];
  70. $params['originDestinationParams'] = "";
  71. if (!empty($params['isfv'])) {
  72. $params['originDestinationParams'] .= "&isfid=" . $params['isfid'] . "&isfv=" . $params['isfv'];
  73. }
  74. if (!empty($params['istv'])) {
  75. $params['originDestinationParams'] .= "&istid=" . $params['istid'] . "&istv=" . $params['istv'];
  76. }
  77. $params['token'] .= $params['originDestinationParams'];
  78. $widgetTemplate = 'doc/' . strtolower($params['type']) . '.html.twig';
  79. return $this->render($widgetTemplate, $params);
  80. }
  81. }