<?php
namespace GraphQL\EventListener;
use App\Service\AppManager;
use GraphQL\Factory\RequestLoggingFactory;
use GraphQL\Service\RequestLoggingBanManager;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class RequestLoggingSubscriber implements EventSubscriberInterface
{
private AppManager $appManager;
private RequestLoggingBanManager $requestLoggingBanManager;
public function __construct(AppManager $appManager, RequestLoggingBanManager $requestLoggingBanManager)
{
$this->appManager = $appManager;
$this->requestLoggingBanManager = $requestLoggingBanManager;
}
public static function getSubscribedEvents()
{
return [
KernelEvents::REQUEST => [
['requestLogging', 1000]
],
];
}
public function requestLogging(RequestEvent $requestEvent): void
{
$request = $requestEvent->getRequest();
$requestLogging = RequestLoggingFactory::createFromRequest($request);
//$this->requestLoggingBanManager->protect($requestLogging);
$this->appManager->eventPersist($requestLogging);
}
}