src/EventSubscriber/TransactionFromListener.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\User;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\Security\Core\Security;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use ApiPlatform\Core\EventListener\EventPriorities;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class TransactionFromListener implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var Security
  13.      */
  14.     private $security;
  15.     /**
  16.      * ResolveMeSubscriber constructor.
  17.      * @param Security $security
  18.      */
  19.     public function __construct(Security $security)
  20.     {
  21.         $this->security $security;
  22.     }
  23.     public static function getSubscribedEvents()
  24.     {
  25.         return [
  26.             KernelEvents::REQUEST => ['putUser'EventPriorities::POST_DESERIALIZE],
  27.         ];
  28.     }
  29.     public function putUser(RequestEvent $event)
  30.     {
  31.         $request $event->getRequest();
  32.         if ('api_transactions_post_collection' !== $request->attributes->get('_route')) {
  33.             return;
  34.         }
  35.         $transaction $request->attributes->get('data');
  36.         $user $this->security->getUser();
  37.         if (!$user instanceof User) {
  38.             return;
  39.         }
  40.         $transaction->setUserFrom($user);
  41.     }
  42. }