src/EventSubscriber/Vendor/VendorPostValidateSubscriber.php line 59

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: sebastiantovar
  5.  * Date: 2019-04-03
  6.  * Time: 16:47
  7.  */
  8. namespace App\EventSubscriber\Vendor;
  9. use App\Exception\VendorException;
  10. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  11. use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
  12. use Symfony\Component\HttpKernel\Event\ViewEvent;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  14. use ApiPlatform\Core\EventListener\EventPriorities;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpKernel\KernelEvents;
  17. use App\Entity\App\Vendor;
  18. use App\Repository\App\VendorRepository;
  19. use App\Repository\App\RoleRepository;
  20. use App\Services\VendorService;
  21. class VendorPostValidateSubscriber implements EventSubscriberInterface
  22. {
  23.     private $tokenStorage;
  24.     private $authorizationChecker;
  25.     private $vendorService;
  26.     private $roleRepository;
  27.     private $vendorRepository;
  28.     public function __construct(
  29.         TokenStorageInterface $tokenStorage,
  30.         AuthorizationCheckerInterface $checker,
  31.         VendorService $vendorService,
  32.         VendorRepository $vendorRepository,
  33.         RoleRepository $roleRepository
  34.     ) {
  35.         $this->tokenStorage $tokenStorage;
  36.         $this->authorizationChecker $checker;
  37.         $this->vendorService $vendorService;
  38.         $this->roleRepository $roleRepository;
  39.         $this->vendorRepository $vendorRepository;
  40.     }
  41.     /**
  42.      * {@inheritdoc}
  43.      */
  44.     public static function getSubscribedEvents() {
  45.         return [
  46.             KernelEvents::VIEW => ['prepareUserData'EventPriorities::POST_VALIDATE]
  47.         ];
  48.     }
  49.     /**
  50.      * @param ViewEvent $event
  51.      * @throws VendorException
  52.      */
  53.     public function prepareUserData(ViewEvent $event) {
  54.         $vendor $event->getControllerResult();
  55.         $method $event->getRequest()->getMethod();
  56.         if (!($vendor instanceof Vendor) ||
  57.             (Request::METHOD_POST !== $method && Request::METHOD_PUT !== $method)) {
  58.             return;
  59.         }
  60.         $mediaContent $vendor->getMediaContent();
  61.         if ($mediaContent !== null && $mediaContent !== 0)
  62.             $this->vendorService->validateMediaContent($vendor$mediaContent);
  63.     }
  64. }