<?php
namespace App\Controller;
use App\Entity\Site\LocaleFille;
use App\Entity\Site\LocaleMere;
use App\Repository\Site\LocaleMereRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpClient\HttpClient;
class ArtisanController extends AbstractController
{
/**
* @Route("/artisans", name="artisans")
*/
public function index(Request $request, LocaleMereRepository $localeMereRepository)
{
$apiKey = $this->getParameter('app.apiKeyGoogleMap');
$urlSogalExpert = $this->getParameter('api.sogalExpert.url');
$urlListe = $urlSogalExpert."sogal-com/artisan-installateur";
$urlNoApercu = "/assets/images/noApercu.jpg";
$urlNoApercuExpert = "/assets/images/noApercuExpert.jpg";
$ville = "";
$localeMeres = $localeMereRepository->findAll();
if ($request->query->get("ville")) {
$ville = $request->query->get("ville");
}
return $this->render('artisan/index.html.twig', [
'apiKey' => $apiKey,
'urlListe' => $urlListe,
'urlSogalExpert' => $urlSogalExpert,
'urlNoApercu' => $urlNoApercu,
'urlNoApercuExpert' => $urlNoApercuExpert,
'ville' => $ville,
"localeMeres" => $localeMeres
]);
}
/**
* @Route("/artisans/{seoUrl}", name="artisans_locale_mere")
*/
public function localeMere(LocaleMere $localeMere) {
if ($this->getParameter('kernel.environment') == "dev") {
$urlApiSogal = $this->getParameter("api.sogalExpert.url.localhost");
}else {
$urlApiSogal = $this->getParameter("api.sogalExpert.url");
}
$url = $urlApiSogal."sogal-com/artisan-locales/".$localeMere->getLatitude()."/".$localeMere->getLongitude();
$headers = [
'X-AUTH-TOKEN' => ''. $this->getParameter("api.sogalExpert.token"),
];
$client = HttpClient::create(["headers" => $headers]);
$jsonResults = $client->request('GET', $url);
$results = json_decode($jsonResults->getContent(), true);
$experts = [];
foreach ($results as $key => $result) {
if ((int)$result["accessLevel"] == 0) {
$experts[] = $result;
}
}
$urlNoApercuExpert = "/assets/images/noApercuExpert.jpg";
$urlSogalExpert = $this->getParameter('api.sogalExpert.url');
return $this->render('artisan/localeMere.html.twig', [
"localeMere" => $localeMere,
"experts" => $experts,
"urlSogalExpert" => $urlSogalExpert,
"urlNoApercuExpert" => $urlNoApercuExpert,
]);
}
/**
* @Route("/artisans/{localeMere}/{localeFille}", name="artisans_locale_fille" )
* @ParamConverter("localeMere", options={"mapping": {"localeMere": "seoUrl"}})
* @ParamConverter("localeFille", options={"mapping": {"localeFille": "seoUrl"}})
*/
public function localFille(LocaleMere $localeMere, LocaleFille $localeFille) {
if ($this->getParameter('kernel.environment') == "dev") {
$urlApiSogal = $this->getParameter("api.sogalExpert.url.localhost");
}else {
$urlApiSogal = $this->getParameter("api.sogalExpert.url");
}
$url = $urlApiSogal."sogal-com/artisan-locales/".$localeMere->getLatitude()."/".$localeMere->getLongitude();
$headers = [
'X-AUTH-TOKEN' => ''. $this->getParameter("api.sogalExpert.token"),
];
$client = HttpClient::create(["headers" => $headers]);
$jsonResults = $client->request('GET', $url);
$results = json_decode($jsonResults->getContent(), true);
$experts = [];
foreach ($results as $key => $result) {
if ((int)$result["accessLevel"] == 0) {
$experts[] = $result;
}
}
$urlNoApercuExpert = "/assets/images/noApercuExpert.jpg";
$urlSogalExpert = $this->getParameter('api.sogalExpert.url');
return $this->render('artisan/localeFille.html.twig', [
"localeFille" => $localeFille,
"experts" => $experts,
"urlSogalExpert" => $urlSogalExpert,
"urlNoApercuExpert" => $urlNoApercuExpert,
]);
}
}