src/Controller/HomeController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ContactType;
  4. use App\Model\ContactDTO;
  5. use App\Repository\AgencyRepository;
  6. use App\Repository\BlockRepository;
  7. use App\Repository\GroupRepository;
  8. use App\Repository\JobRepository;
  9. use App\Repository\MemberRepository;
  10. use App\Repository\PageRepository;
  11. use App\Services\MailService;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. class HomeController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/{_locale<en|fr>}/", name="front_home")
  20.      * @Route("/{_locale<en|fr>}/condition-generales", name="front_home_cgu")
  21.      * @Route("/{_locale<en|fr>}/politique-confidentialite", name="front_home_politique")
  22.      * @Route("/{_locale<en|fr>}/mentions-legales", name="front_home_mentions")
  23.      */
  24.     public function home(
  25.         Request $request,
  26.         MailService $mailService,
  27.         MemberRepository $memberRepository,
  28.         JobRepository $jobRepository,
  29.         BlockRepository $blockRepository,
  30.         PageRepository $pageRepository,
  31.         GroupRepository $groupRepository,
  32.         AgencyRepository $agencyRepository)
  33.     {
  34.         $contactDTO = new ContactDTO();
  35.         $form $this->createForm(ContactType::class, $contactDTO, ['locale' => $request->getLocale()])->handleRequest($request);
  36.         if ($form->isSubmitted() && $form->isValid()) {
  37.             $arrayErrors = [];
  38.             if (!$contactDTO->getFirstname()) {
  39.                 $arrayErrors['firstname'] = 'Veuillez renseigner votre prénom';
  40.             }
  41.             if (!$contactDTO->getLastname()) {
  42.                 $arrayErrors['lastname'] = 'Veuillez renseigner votre nom';
  43.             }
  44.             if (!$contactDTO->getEmail()) {
  45.                 $arrayErrors['email'] = 'Veuillez renseigner votre email';
  46.             }
  47.             if (!$contactDTO->getPhone()) {
  48.                 $arrayErrors['phone'] = 'Veuillez renseigner votre N° de téléphone';
  49.             }
  50.             if (!$contactDTO->getCompany()) {
  51.                 $arrayErrors['company'] = 'Veuillez renseigner votre société';
  52.             }
  53.             if (!$contactDTO->getMessage() || strlen($contactDTO->getMessage()) < 10) {
  54.                 $arrayErrors['message'] = 'Veuillez renseigner le message';
  55.             }
  56.             if (!empty($arrayErrors)) {
  57.                 return $this->json([
  58.                     'status' => 'error',
  59.                     'errors' => $arrayErrors
  60.                 ]);
  61.             }
  62.             $mailService->sendMail($contactDTO);
  63.             return $this->json([
  64.                 'status' => 'ok',
  65.                 'message' => $arrayErrors
  66.             ], Response::HTTP_OK);
  67.         }
  68.         return $this->render('front/home.html.twig', [
  69.             'form' => $form->createView(),
  70.             'members' => $memberRepository->findBy([], ['position' => 'ASC']),
  71.             'jobs' => $jobRepository->findBy([], ['id' => 'DESC']),
  72.             'companies' => $groupRepository->findBy([], ['id' => 'DESC']),
  73.             'blockHeader' => $blockRepository->findOneBy(['name' => 'header']),
  74.             'blockVision' => $blockRepository->findOneBy(['name' => 'vision']),
  75.             'blockMission' => $blockRepository->findOneBy(['name' => 'mission']),
  76.             'blockGroup' => $blockRepository->findOneBy(['name' => 'group']),
  77.             'blockTeam' => $blockRepository->findOneBy(['name' => 'team']),
  78.             'blockJoin' => $blockRepository->findOneBy(['name' => 'join']),
  79.             'blockAgency' => $blockRepository->findOneBy(['name' => 'agencies']),
  80.             'blockContact' => $blockRepository->findOneBy(['name' => 'contact']),
  81.             'groupBlock1' => $blockRepository->findOneBy(['name' => 'group_block_1']),
  82.             'groupBlock2' => $blockRepository->findOneBy(['name' => 'group_block_2']),
  83.             'pageCondition' => $pageRepository->findOneBy(['name' => 'conditions']),
  84.             'pageMention' => $pageRepository->findOneBy(['name' => 'mentions']),
  85.             'pagePolitique' => $pageRepository->findOneBy(['name' => 'politique']),
  86.             'agencies' => $agencyRepository->findBy([], ['id' => 'DESC']),
  87.         ]);
  88.     }
  89.     /**
  90.      * @Route("/map/filter", methods={"POST"}, name="front_home_filter")
  91.      */
  92.     public function filterMap(Request $requestAgencyRepository $agencyRepository)
  93.     {
  94.         if (!$request->get('filter') || $request->get('filter') === 'all') {
  95.             return $this->json([
  96.                 'status' => 'error',
  97.                 'data' => $agencyRepository->getAllAgencies(),
  98.             ], Response::HTTP_OK);
  99.         }
  100.         $agencies $agencyRepository->filterAgencies($request->get('filter'));
  101.    
  102.         return $this->json([
  103.             'status' => 'ok',
  104.             'data' => $agencies,
  105.         ], Response::HTTP_OK);
  106.     }
  107. }