src/V4/Action/Quote/SerializeQuoteAction.php line 19

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\V4\Action\Quote;
  4. use App\V4\Builder\PublicTransformer\PublicTransformerBuilder;
  5. use App\V4\Transformer\FQCNToShortNameTransformer;
  6. use Lexik\Bundle\JWTAuthenticationBundle\Security\Authentication\Token\JWTUserToken;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Security\Core\Security;
  12. /**
  13.  * @Route("/api/serialize-entity/quote/{quoteId}", methods={"GET"})
  14.  */
  15. class SerializeQuoteAction extends AbstractController
  16. {
  17.     /**
  18.      * @var PublicTransformerBuilder
  19.      */
  20.     private $publicTransformerBuilder;
  21.     /**
  22.      * @var Security
  23.      */
  24.     private $security;
  25.     public function __construct(PublicTransformerBuilder $publicTransformerBuilderSecurity $security)
  26.     {
  27.         $this->publicTransformerBuilder $publicTransformerBuilder;
  28.         $this->security $security;
  29.     }
  30.     public function __invoke(string $quoteId): Response
  31.     {
  32.         $data $this->publicTransformerBuilder->transformFromId(FQCNToShortNameTransformer::ENTITY_QUOTE$quoteId);
  33.         /** @var JWTUserToken $token */
  34.         $token $this->security->getToken();
  35.         return new JsonResponse(array_merge($data, [
  36.             // :(
  37.             '_token' => $token->getCredentials(),
  38.         ]));
  39.     }
  40. }