<?php
namespace App\Controller;
use http\Env\Response;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Contracts\Translation\TranslatorInterface;
use Pimcore\Model\DataObject;
use Pimcore\Model\Document;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
use Pimcore\Model\WebsiteSetting;
use App\Form\InscriptionFormType;
use Pimcore\Mail;
use Carbon\Carbon;
use Pimcore\Model\DataObject\Folder;
use App\Service\Akimedia;
use Pimcore\Bundle\AdminBundle\HttpFoundation\JsonResponse;
use GuzzleHttp\Client;
class PlasmaController extends FrontendController
{
/**
* @Template
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*
*/
#[Route(path:[
'fr' => '/{_locale}/recherche',
'de' => '/{_locale}/suchen',
'nl' => '/{_locale}/search',
], name: 'searchPlasma')]
public function defaultContactAction(Request $request)
{
$session = $request->getSession();
$token = $session->get('akimedia-token');
if(!$token){
$token = Akimedia::login();
$session->set('akimedia-token', $token);
}
$du = $request->get("du");
$au = $request->get("au");
$cp = $request->get("cp");
$results = Akimedia::getCollectesAndSites($request);
$allsites = Akimedia::getSites($request);
$arraySites = [];
foreach($allsites as $site){
$arraySites[$site["name"]] = $site["id"];
}
foreach ($results["sites"] as $row => $val){
$horaires = Akimedia::getSiteHoraire($request, $val["site_id"]);
$availabilities = Akimedia::getSiteAvailabilities($request, $arraySites[$val["name"]]);
$info = Akimedia::getSiteInfos($request, $arraySites[$val["name"]]);
$results["sites"][$row]['horaires'] = $horaires;
$results["sites"][$row]['availibilities'] = $availabilities;
$results["sites"][$row]['infos'] = $info;
$results["sites"][$row]['id_akimedia'] = $arraySites[$val["name"]];
}
//dd($results["sites"]);
return $this->render('plasma/search.html.twig',[
"centres" => $results["sites"],
"collectes" => $results["collectes"],
"du" => $du,
"au" => $au,
"cp" => $cp,
]);
}
/**
* @Template
* @param Request $request
* @route("/{_locale}/api/plasma/status", name="apiAkimediaPlasmaPlages",methods={"GET"})
* @return JsonResponse
*/
public function plasmaPlagesStatusAction(Request $request, \Symfony\Contracts\Translation\TranslatorInterface $translator)
{
$session = $request->getSession();
$token = $session->get('akimedia-token');
if(!$token){
$token = Akimedia::login();
$session->set('akimedia-token', $token);
}
$site = Akimedia::getPlasmaPlages($request, $translator);
return new JsonResponse($site);
}
}