src/EventSubscriber/ExpertReportRequestSubscriber.php line 35

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace MedBrief\MSR\EventSubscriber;
  4. use MedBrief\MSR\Service\ProjectMatch\ExpertReportRequestService;
  5. use Override;
  6. use Symfony\Component\Console\ConsoleEvents;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. /**
  10. * Writes the expert report requests queued during a request once the caller's own saves are done.
  11. */
  12. final class ExpertReportRequestSubscriber implements EventSubscriberInterface
  13. {
  14. public function __construct(
  15. private readonly ExpertReportRequestService $expertReportRequestService,
  16. ) {
  17. }
  18. /**
  19. * @return array<string, string>
  20. */
  21. #[Override]
  22. public static function getSubscribedEvents(): array
  23. {
  24. return [
  25. KernelEvents::TERMINATE => 'onTerminate',
  26. ConsoleEvents::TERMINATE => 'onTerminate',
  27. ];
  28. }
  29. public function onTerminate(): void
  30. {
  31. $this->expertReportRequestService->flushPending();
  32. }
  33. }