src/DcSiteBundle/Controller/Nissan/AccessoriesController.php line 35

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Nissan;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Factory\Vehicle as VehicleFactory;
  6. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  7. use CoreBundle\Model\Vehicles\Repository;
  8. use CoreBundle\Services\MediaExtensionVidi;
  9. use DcSiteBundle\Services\AccessoryShopService;
  10. use DcSiteBundle\Services\Nissan\Finance\FinanceService;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use PortalBundle\Model\SeoMetaTag;
  13. use Symfony\Component\Filesystem\Filesystem;
  14. use Symfony\Component\HttpFoundation\RedirectResponse;
  15. use Symfony\Component\HttpFoundation\RequestStack;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  18. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  19. use Symfony\Component\Routing\RouterInterface;
  20. use Twig\Environment;
  21. class AccessoriesController extends BaseController
  22. {
  23.     private FinanceService $financeService;
  24.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twigFinanceService $financeService)
  25.     {
  26.         $this->financeService $financeService;
  27.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  28.     }
  29.     public function accessoriesCatalog(AccessoryShopService $accessoryShopService): ?Response
  30.     {
  31.         $dealer $this->getDealer();
  32.         $accessoryCatalog $accessoryShopService->getAccessoryCatalog($dealer);
  33.         return $this->baseNissanRender('@DcSite/Nissan/Accessories/accessories-catalog.html.twig'$accessoryCatalog + [
  34.                 'cars' => $this->financeService->getVehicles($dealer),
  35.             ]);
  36.     }
  37.     public function accessoriesCategory(AccessoryShopService $accessoryShopService): ?Response
  38.     {
  39.         $dealer $this->getDealer();
  40.         $accessoryCategory $accessoryShopService->getAccessoryCategory($dealer);
  41.         if (!$accessoryCategory['accessoryCount']) {
  42.             throw new NotFoundHttpException();
  43.         } else {
  44.             return $this->baseNissanRender('@DcSite/Nissan/Accessories/accessories-catalog.html.twig'$accessoryCategory + [
  45.                     'cars' => $this->financeService->getVehicles($dealer),
  46.                 ]);
  47.         }
  48.     }
  49.     public function accessoriesModel(AccessoryShopService $accessoryShopService): ?Response
  50.     {
  51.         $dealer $this->getDealer();
  52.         $accessoryModel $accessoryShopService->getAccessoryModel($dealer);
  53.         return $this->baseNissanRender('@DcSite/Nissan/Accessories/accessories-catalog.html.twig'$accessoryModel + [
  54.                 'cars' => $this->financeService->getVehicles($dealer),
  55.             ]);
  56.     }
  57.     public function accessoriesPage(AccessoryShopService $accessoryShopService): ?Response
  58.     {
  59.         $dealer $this->getDealer();
  60.         $accessoryPage $accessoryShopService->getAccessoryPage($dealer);
  61.         return $this->baseNissanRender('@DcSite/Nissan/Accessories/accessories-page.html.twig'$accessoryPage + [
  62.                 'cars' => $this->financeService->getVehicles($dealer),
  63.             ]);
  64.     }
  65.     public function accessoriesModelVariation()
  66.     {
  67.         $dealer $this->getDealer();
  68.         $accessoryModel $this->get('dc.accessory.shop')->getAccessoryModelAndVariation($dealer);
  69.         return $this->baseNissanRender('@DcSite/Nissan/Accessories/accessories-catalog.html.twig'$accessoryModel);
  70.     }
  71.     public function redirectAccessories(): RedirectResponse
  72.     {
  73.         return $this->redirectToRoute('nissan_service_accessory_catalog', [], 301);
  74.     }
  75. }