<?php
namespace App\V4\Controller\Prospect;
use App\Model\Form\FormSchema;
use App\V4\Service\Prospect\ProspectFormHandler;
use App\V4\Voters\ProspectVoter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Serializer\Exception\ExceptionInterface;
class GetProspectSearchFormAction extends AbstractController
{
/**
* @var ProspectFormHandler
*/
private $prospectFormHandler;
/**
* @param ProspectFormHandler $prospectFormHandler
*/
public function __construct(ProspectFormHandler $prospectFormHandler)
{
$this->prospectFormHandler = $prospectFormHandler;
}
/**
* @param Request $request
*
* @return FormSchema|JsonResponse
*
* @throws ExceptionInterface
*/
public function __invoke(Request $request)
{
$this->denyAccessUnlessGranted(ProspectVoter::PROSPECT_SHOW_LIST);
return $this->prospectFormHandler->getProspectSearchForm(
(bool) $request->query->get('isLegacy', false),
'true' === $request->query->get('isGeolocationSearch', 'false')
);
}
}