<?php
/**
* Created by Notive.
* User: Ferry Koster
* Date: 14:00 20-04-16
*/
namespace WebserviceBundle\Event;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use WmsBundle\Common\PaginationParameters;
/**
* Class PaginationParameterListener
* @package WebserviceBundle\Event
*/
class PaginationParameterListener
{
/**
* @var PaginationParameters
*/
protected $paginationParameters;
/**
* DefaultParameterListener constructor.
* @param PaginationParameters $paginationParameters
*/
public function __construct(PaginationParameters $paginationParameters)
{
$this->paginationParameters = $paginationParameters;
}
/**
* @param GetResponseEvent $event
* @throws \InvalidArgumentException
*/
public function onKernelRequest(GetResponseEvent $event)
{
/**
* @var Request $request
*/
$request = $event->getRequest();
if ($request->query->get('limit')) {
$this->paginationParameters->setLimit($request->query->get('limit'));
}
if ($request->query->get('page')) {
$this->paginationParameters->setPage($request->query->get('page'));
}
if ($request->query->get('sort')) {
$this->paginationParameters->setSort($request->query->get('sort'));
}
if ($request->query->get('direction')) {
$this->paginationParameters->setDirection($request->query->get('direction'));
}
}
}