src/EventListener/RequestListener.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Config;
  4. use App\Services\Aws\S3;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface as TokenStorage;
  7. class RequestListener
  8. {
  9.     private $awsComponentsS3;
  10.     private $tokenStorage;
  11.     public function __construct(TokenStorage $tokenStorageS3 $awsComponentsS3)
  12.     {
  13.         $this->awsComponentsS3 $awsComponentsS3;
  14.         $this->tokenStorage $tokenStorage;
  15.     }
  16.     public function onKernelRequest(RequestEvent $event)
  17.     {
  18.         if ($event->isMainRequest()) {
  19.             try {
  20.                 if ($event->getRequest()->files && sizeof($event->getRequest()->files)) {
  21.                     $date = new \Datetime('now');
  22.                     $route =  $event->getRequest()->get('_route') ?? null;
  23.                     foreach ($event->getRequest()->files as $key => $value) {
  24.                         $userEmail $this->tokenStorage->getToken() && !is_string($this->tokenStorage->getToken()->getUser()) ? $this->tokenStorage->getToken()->getUser()->getEmail() : null;
  25.                         $fileKey Config::S3_MAFO_UPLOADS_DIRECTORY '/' $date->format('c') . '_' $userEmail '_' $route '_' $value->getClientOriginalName();
  26.                         $this->awsComponentsS3->uploadFileToS3($value$fileKey);
  27.                     }
  28.                     return;
  29.                 }
  30.             } catch (\Exception $e) {
  31.             }
  32.         }
  33.     }
  34. }