src/EventSubscriber/DocumentSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Symfony\EventListener\EventPriorities;
  4. use App\Entity\Category;
  5. use App\Entity\Document;
  6. use App\Evaluation\EvaluationPrepare;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Doctrine\ORM\Mapping\ClassMetadata;
  9. use Psr\Log\LoggerInterface;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpKernel\Event\ViewEvent;
  13. use Symfony\Component\HttpKernel\KernelEvents;
  14. use Symfony\Component\Security\Core\Security;
  15. final class DocumentSubscriber implements EventSubscriberInterface
  16. {
  17.     private LoggerInterface $logger;
  18.     public function __construct(private EvaluationPrepare $evaluationPrepare, private Security $securityLoggerInterface $logger
  19.     )
  20.     {
  21.         $this->logger $logger;
  22.     }
  23.     public static function getSubscribedEvents()
  24.     {
  25.         return [
  26.             KernelEvents::VIEW => ['prepareEvaluations'EventPriorities::POST_WRITE],
  27.         ];
  28.     }
  29.     public function prepareEvaluations(ViewEvent $event): void
  30.     {
  31.         $document $event->getControllerResult();
  32.         $method $event->getRequest()->getMethod();
  33.         if ((!$document instanceof Document)) {
  34.             return;
  35.         }
  36.         $this->logger->info('Processing Document ID :'.$document->getId());
  37.         $this->evaluationPrepare->prepare($document$this->security->getUser());
  38.     }
  39. }