src/Controller/EcosystemController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Pimcore\Localization\LocaleServiceInterface;
  6. use App\Validator\Validator;
  7. /**
  8.  * @Route("/api/ecosystem")
  9.  */
  10. class EcosystemController extends BaseController
  11. {
  12.     protected $validator;
  13.     protected $locale;
  14.     public function __construct(
  15.         Validator $validator,
  16.         LocaleServiceInterface $localeService,
  17.     )
  18.     {
  19.         $this->validator $validator;
  20.         $this->locale $localeService->getLocale();
  21.     }
  22.     /**
  23.      * @Route("/detail/{slug}", methods={"GET"})
  24.      */
  25.     public function detail($slugRequest $request)
  26.     {
  27.         $site $this->getSite($request);
  28.         if ($site) {
  29.             try {
  30.                 $errorMessages $this->validator->validate([
  31.                     'slug' => $slug 'required' 'required',
  32.                 ], $request);
  33.                 if ($errorMessages) return $this->sendValidatorError($errorMessages);
  34.                 $siteName $site->getRootDocument()->getKey();
  35.                 $class str_replace(__NAMESPACE____NAMESPACE__ .'\\'$siteName__CLASS__);
  36.                 $class $this->checkMiniSiteClass($class$siteName);
  37.                 if (class_exists($class)) {
  38.                     $controller = new $class($this->locale);
  39.                     $method __FUNCTION__;
  40.                     if (method_exists($controller$method)) {
  41.                         $response $controller->{$method}($slug$site);
  42.                         return $this->sendResponse($response);
  43.                     }
  44.                 }
  45.                 return $this->sendResponse();
  46.             } catch (\Throwable $e) {
  47.                 return $this->sendError($e->getMessage(), 500);
  48.             }
  49.         }
  50.         return $this->returnNotFound();
  51.     }
  52. }