src/Controller/Website/ApiTerritoryExperienceController.php line 62

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Website;
  3. use App\Service\ApiTerritoryExperienceService;
  4. use Sulu\Bundle\SearchBundle\Controller\WebsiteSearchController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use App\Entity\Category;
  9. use Twig\Environment;
  10. class ApiTerritoryExperienceController extends WebsiteSearchController
  11. {
  12.     private $twig;
  13.     private $searchService;
  14.     private EntityManagerInterface $entityManager;
  15.     public function __construct(Environment $twigApiTerritoryExperienceService $searchService,EntityManagerInterface $entityManager)
  16.     {
  17.         $this->twig $twig;
  18.         $this->searchService $searchService;
  19.         $this->entityManager $entityManager;
  20.     }
  21.     /**
  22.      *  
  23.      * @return Response
  24.      */
  25.     public function queryTerritory(Request $request): Response
  26.     {
  27.         $hits $this->searchService->territorySearch($request);
  28.         $res = new Response($this->twig->render(
  29.             'api/api_territory_search.html.twig',
  30.             [
  31.                 'hits' => $hits,
  32.             ]
  33.         ));
  34.         $res->headers->set('Content-Type''text/html');
  35.         return $res;
  36.     }
  37.     public function queryExperience(Request $request): Response
  38.     {
  39.         $hits $this->searchService->experienceSearch($request);
  40.         $res = new Response($this->twig->render(
  41.             'api/api_experience_search.html.twig',
  42.             [
  43.                 'hits' => $hits,
  44.             ]
  45.         ));
  46.         $res->headers->set('Content-Type''text/html');
  47.         return $res;
  48.     }
  49.     public function getExperiencesTerritoire(Request $request): Response
  50.     {
  51.         $id $request->query->get('id');
  52.         $hits $this->searchService->experienceTerritoireSearch($id);
  53.         $res = new Response($this->twig->render(
  54.             'api/blocks/experience-preview-content.html.twig',
  55.             [
  56.                 'hits' => $hits,
  57.             ]
  58.         ));
  59.         $res->headers->set('Content-Type''text/html');
  60.         return $res;
  61.     }
  62.     public function getTerritoryName(Request $request): Response
  63.     {
  64.         $id $request->query->get('id');
  65.         $array_terri = [];
  66.         $departements $this->entityManager->getRepository(Category::class)->findChildrenCategoriesByParentKey('departements');
  67.         
  68.         foreach ($departements as $key => $departement) {
  69.             $territoires $departement->getChildren();
  70.             foreach($territoires as $key2 => $territoire) {
  71.                 array_push($array_terri,["name"=>$territoire->findTranslationByLocale('fr')->getTranslation(),"id"=>$territoire->getId()]);
  72.                 if($territoire->getId() == $id){
  73.                     return  new Response($territoire->findTranslationByLocale('fr')->getTranslation());
  74.                 }
  75.             }
  76.         }
  77.         return new Response("Aucune correspondance");
  78.     }
  79. }