<?php
namespace App\EventListener;
use App\Service\Subscription\SubscriptionService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Security\Core\Security;
class SubscriptionEventSubscriber implements EventSubscriberInterface
{
private $security;
private $subscriptionService;
public function __construct(Security $security,SubscriptionService $subscriptionService)
{
$this->security = $security;
$this->subscriptionService = $subscriptionService;
}
public static function getSubscribedEvents(): array
{
return [
RequestEvent::class => 'onKernelRequest',
];
}
public function onKernelRequest(RequestEvent $event)
{
$user = $this->security->getUser();
if($user) {
if ($user->getCompany()) {
$isSubscribed = $this->subscriptionService->getCurrentSubscription();
}
else { $isSubscribed = $this->subscriptionService->getCurrentCustomerSubscription();
}
$event->getRequest()->attributes->set('isSubscribed', $isSubscribed);
}
}
}