<?php
namespace App\V4\Controller\Quote;
use App\Model\Form\FormSchema;
use App\V4\Service\Quote\QuoteFormHandler;
use App\V4\Voters\QuoteVoter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Serializer\Exception\ExceptionInterface;
class GetQuoteSearchFormAction extends AbstractController
{
/**
* @var QuoteFormHandler
*/
private $quoteFormHandler;
/**
* @param QuoteFormHandler $quoteFormHandler
*/
public function __construct(QuoteFormHandler $quoteFormHandler)
{
$this->quoteFormHandler = $quoteFormHandler;
}
/**
* @param Request $request
*
* @return FormSchema|JsonResponse
*
* @throws ExceptionInterface
*/
public function __invoke(Request $request)
{
$this->denyAccessUnlessGranted(QuoteVoter::QUOTE_SHOW_LIST);
return $this->quoteFormHandler->getQuoteSearchForm($request->query->get('tabId'), (bool) $request->query->get('isLegacy', false));
}
}