<?php
namespace AWCmsBundle\EventListener;
use AWCmsBundle\Manager\SiteManager;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
/**
* Listener for the REQUEST event. Patches the HeaderBag because the
* "Authorization" header is not included in $_SERVER
*/
class ApiRequestListener
{
/** @var SiteManager */
private $siteManager;
public function __construct(SiteManager $siteManager)
{
$this->siteManager = $siteManager;
}
/**
* Handles REQUEST event
*
* @param GetResponseEvent $event the event
*/
public function onKernelRequest(GetResponseEvent $event)
{
$this->setLocaleRequest($event->getRequest());
}
private function setLocaleRequest(Request $request){
if($this->siteManager->getSite()) {
if ($request->getLanguages() !== [] && preg_match('|^/api/|', $request->getRequestUri())) {
$request->setLocale($request->getPreferredLanguage(array_values($this->siteManager->getSite()->getLanguagesCodes())));
}
}
}
}