<?php
namespace App\EventSubscriber;
use App\Exception\MaximumNumProjectsReachedException;
use Symfony\Component\HttpClient\Exception\EventSourceException;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
use Symfony\Component\Routing\Router;
use Symfony\Component\Routing\RouterInterface;
class MaximumNumProjectsReachedListener
{
private RouterInterface $router;
private SessionInterface $session;
public function __construct(RouterInterface $router, SessionInterface $session)
{
$this->router = $router;
$this->session = $session;
}
public function onKernelException(ExceptionEvent $event)
{
$exception = $event->getThrowable();
if (!$exception instanceof MaximumNumProjectsReachedException) {
return;
}
$this->session->getFlashBag()->add('error', 'Die maximal mögliche Anzahl von Projekten ist bereits erreicht.');
$response = new RedirectResponse($this->router->generate('app_district_application'));
$event->setResponse($response);
}
}