<?php
/**
* Created by Notive.
* Project: wms
* User: Henny Krijnen
* Date: 21/04/17
* Time: 12:55
*/
namespace WebserviceBundle\Event;
use FOS\RestBundle\Controller\Annotations\View;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
/**
* Class ExtendedViewResponseListener
* @package WebserviceBundle\Event
*/
class ExtendedViewResponseListener
{
/**
* @param GetResponseForControllerResultEvent $event
* @throws \InvalidArgumentException
*/
public function onKernelView(GetResponseForControllerResultEvent $event)
{
if (null !== $viewAttribute = $event->getRequest()->attributes->get('_template')) {
/** @var View $viewAttribute */
$viewAttribute->setSerializerGroups($this->getExpandHeaders($event->getRequest()));
}
}
/**
* @param Request $request
* @return array
*/
private function getExpandHeaders(Request $request): array
{
$expand = preg_split('/;\s*/', $request->headers->get('Expand'));
$expand = array_map('strtolower', $expand);
return array_filter($expand);
}
}