src/V4/Controller/Quote/GetQuoteFormAction.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\V4\Controller\Quote;
  3. use App\V4\Model\Quote\Quote;
  4. use App\V4\Service\Quote\QuoteFormHandler;
  5. use App\V4\Voters\QuoteVoter;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Serializer\Exception\ExceptionInterface;
  10. class GetQuoteFormAction extends AbstractController
  11. {
  12.     /**
  13.      * @var QuoteFormHandler
  14.      */
  15.     private $quoteFormHandler;
  16.     /**
  17.      * @param QuoteFormHandler $quoteFormHandler
  18.      */
  19.     public function __construct(QuoteFormHandler $quoteFormHandler)
  20.     {
  21.         $this->quoteFormHandler $quoteFormHandler;
  22.     }
  23.     /**
  24.      * @param Request $request
  25.      * @param mixed $data
  26.      *
  27.      * @return JsonResponse
  28.      * @throws ExceptionInterface
  29.      */
  30.     public function __invoke(Request $request$data): JsonResponse
  31.     {
  32.         $this->denyAccessUnlessGranted(QuoteVoter::QUOTE_ADD_EDIT);
  33.         return $this
  34.             ->quoteFormHandler
  35.             ->getQuoteFormFromModel(
  36.                 $data instanceof Quote $data : (new Quote())->setPotential(Quote::DEFAULT_POTENTIAL_VALUE),
  37.                 $request->get('prospectId'),
  38.                 $request->query->get('tabId'),
  39.                 (bool) $request->query->get('isLegacy'false)
  40.             );
  41.     }
  42. }