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