src/Controller/Endpoint/ObfuscatorController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Endpoint;
  3. use App\Controller\AbstractClass\AbstractObfuscatorController;
  4. use App\Service\AdvertisingManagement;
  5. use App\Service\ObfuscatorService;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\RequestStack;
  8. use Symfony\Component\HttpFoundation\Response;
  9. /**
  10.  * Class ObfuscatorController
  11.  */
  12. class ObfuscatorController extends AbstractObfuscatorController
  13. {
  14.     private string $class;
  15.     private ?Request $request = null;
  16.     public function __construct(AdvertisingManagement $advertiserService, RequestStack $requestStack)
  17.     {
  18.         $this->request = $requestStack->getCurrentRequest();
  19.         $advertiser = $advertiserService->getCurrentAdvertiser();
  20.         $className = (new \ReflectionClass($this))->getShortName();
  21.         $this->class = 'App\\Controller\\Advertiser\\Generic\\Generic' . $className;
  22.         if (method_exists($advertiser, 'getRef') && class_exists('App\\Controller\\Advertiser\\' . $advertiser . '\\' . $advertiser->getRef() . $className)) {
  23.             $this->class = 'App\\Controller\\Advertiser\\' . $advertiser . '\\' . $advertiser->getRef() . $className;
  24.         }
  25.     }
  26.     #[Route(ObfuscatorService::ROUTE . '{uuid}', name: 'obfuscator_access_file')]
  27.     public function accessFiles(string $uuid): Response
  28.     {
  29.         return $this->forward($this->class . '::' . __FUNCTION__, $this->request->attributes->get('_route_params'));
  30.     }
  31. }