src/Services/AjaxRequestEditorListener.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Services;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  6. class AjaxRequestEditorListener
  7. {
  8.     protected Request $request;
  9.     protected AjaxRequestEditor $ajaxChecker;
  10.     protected StorageManager $storageManager;
  11.     protected NotificationsManager $notificationsManager;
  12.     public function __construct(
  13.         AjaxRequestEditor $ajaxChecker,
  14.         NotificationsManager $notificationsManager,
  15.         StorageManager $storageManager
  16.     ) {
  17.         $this->ajaxChecker $ajaxChecker;
  18.         $this->notificationsManager $notificationsManager;
  19.         $this->storageManager $storageManager;
  20.     }
  21.     public function setRequest(RequestStack $request_stack)
  22.     {
  23.         $this->request $request_stack->getCurrentRequest();
  24.     }
  25.     public function processAjaxRequestCheck(ResponseEvent $event)
  26.     {
  27.         if ($this->request && $this->request->getSession() && $this->request->attributes->get('_route')) {
  28.             $previousRoute $this->request->attributes->get('_route');
  29.             $len strlen("media/cache");
  30.             $isMediaRoute = (substr($previousRoute0$len) === "media/cache");
  31.             $isApiRoute strpos($previousRoute'api')
  32.                 || strpos($previousRoute'music_data')
  33.                 || strpos($previousRoute'music_informations');
  34.             if (!$isMediaRoute && !$isApiRoute && $previousRoute !== "_wdt") {
  35.                 $this->request->getSession()->set('previousRoute'$previousRoute);
  36.                 $this->request->getSession()->set('previousData'$this->request->attributes->get('_route_params'));
  37.             }
  38.         }
  39.         if (!$event->isMainRequest() || !$this->request->isXmlHttpRequest()) {
  40.             return;
  41.         }
  42.         if (!isset($_POST['token'])) {
  43.             return;
  44.         }
  45.         $notificationsNumber = [
  46.             'notifications' => $this->notificationsManager->getCurrentUserNotificationsNumber(),
  47.             'userMessages' => $this->notificationsManager->getCurrentUserMessagesNumber(),
  48.             'bands' => $this->notificationsManager->getBandMessagesNumber(),
  49.             'bandsNotifications' => $this->notificationsManager->getAllBandsNewsNumber()
  50.         ];
  51.         $response $this->ajaxChecker->removeStaticHtml(
  52.             $this->request,
  53.             $event->getResponse(),
  54.             $notificationsNumber,
  55.             $this->storageManager->getRemainingStorageForBands());
  56.         $event->setResponse($response);
  57.     }
  58. }