<?php
namespace App\Controller\Website;
use App\Service\ApiTerritoryExperienceService;
use Sulu\Bundle\SearchBundle\Controller\WebsiteSearchController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Doctrine\ORM\EntityManagerInterface;
use App\Entity\Category;
use Twig\Environment;
class ApiTerritoryExperienceController extends WebsiteSearchController
{
private $twig;
private $searchService;
private EntityManagerInterface $entityManager;
public function __construct(Environment $twig, ApiTerritoryExperienceService $searchService,EntityManagerInterface $entityManager)
{
$this->twig = $twig;
$this->searchService = $searchService;
$this->entityManager = $entityManager;
}
/**
*
* @return Response
*/
public function queryTerritory(Request $request): Response
{
$hits = $this->searchService->territorySearch($request);
$res = new Response($this->twig->render(
'api/api_territory_search.html.twig',
[
'hits' => $hits,
]
));
$res->headers->set('Content-Type', 'text/html');
return $res;
}
public function queryExperience(Request $request): Response
{
$hits = $this->searchService->experienceSearch($request);
$res = new Response($this->twig->render(
'api/api_experience_search.html.twig',
[
'hits' => $hits,
]
));
$res->headers->set('Content-Type', 'text/html');
return $res;
}
public function getExperiencesTerritoire(Request $request): Response
{
$id = $request->query->get('id');
$hits = $this->searchService->experienceTerritoireSearch($id);
$res = new Response($this->twig->render(
'api/blocks/experience-preview-content.html.twig',
[
'hits' => $hits,
]
));
$res->headers->set('Content-Type', 'text/html');
return $res;
}
public function getTerritoryName(Request $request): Response
{
$id = $request->query->get('id');
$array_terri = [];
$departements = $this->entityManager->getRepository(Category::class)->findChildrenCategoriesByParentKey('departements');
foreach ($departements as $key => $departement) {
$territoires = $departement->getChildren();
foreach($territoires as $key2 => $territoire) {
array_push($array_terri,["name"=>$territoire->findTranslationByLocale('fr')->getTranslation(),"id"=>$territoire->getId()]);
if($territoire->getId() == $id){
return new Response($territoire->findTranslationByLocale('fr')->getTranslation());
}
}
}
return new Response("Aucune correspondance");
}
}