src/MyBundle/Controller/BasketController.php line 24

Open in your IDE?
  1. <?php
  2. namespace MyBundle\Controller;
  3. use AcquiringBundle\Entity\Order;
  4. use CoreBundle\Model\User;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use MyBundle\Messages;
  7. use MyBundle\Service\BasketService;
  8. use MyBundle\Service\OrderService;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Twig\Environment;
  14. class BasketController extends MyBaseController
  15. {
  16.     public function __construct(EntityManagerInterface $emRequestStack $requestStackMessages $messagesUser $userModelEnvironment $twig)
  17.     {
  18.         parent::__construct($em$requestStack$messages$userModel$twig);
  19.     }
  20.     public function basket(): ?Response
  21.     {
  22.         return $this->baseMyRender('@My/Basket/basket.html.twig');
  23.     }
  24.     public function order(Request $requestOrderService $orderService): ?Response
  25.     {
  26.         $orderHash $request->get('hash');
  27.         if ($this->getUser()) {
  28.             throw $this->createNotFoundException('AcquiringOrder not found');
  29.         }
  30.         $acquiringOrder $this->em->getRepository(Order::class)->findOneBy(['hash' => $orderHash]);
  31.         if (!$acquiringOrder) {
  32.             throw $this->createNotFoundException('AcquiringOrder not found');
  33.         }
  34.         $order $orderService->getOrderInfo($acquiringOrder->getDealer(), $this->getUser());
  35.         return $this->baseMyRender('@My/Basket/order.html.twig', [$order]);
  36.     }
  37.     public function init(BasketService $basketService): JsonResponse
  38.     {
  39. //        if (!$this->getUser()) {
  40. //            return new JsonResponse(['success' => false]);
  41. //        }
  42.         return $this->json([
  43.             'success' => true,
  44.             'basket' => $basketService->initBasket($this->getUser()),
  45.         ]);
  46.     }
  47.     public function toggleInstall(BasketService $basketService): JsonResponse
  48.     {
  49.         return $basketService->toggleInstall($this->getUser());
  50.     }
  51.     public function toggleInstallAccessory(BasketService $basketService): JsonResponse
  52.     {
  53.         return $basketService->toggleInstallAccessory();
  54.     }
  55.     public function changeCount(BasketService $basketService): JsonResponse
  56.     {
  57. //        if (!$this->getUser()) {
  58. //            return new JsonResponse(['success' => false, 'error' => 1]);
  59. //        }
  60.         return $basketService->changeCountBasket($this->getUser());
  61.     }
  62.     public function removeItem(BasketService $basketService): JsonResponse
  63.     {
  64.         return $basketService->removeItem($this->getUser());
  65.     }
  66.     public function addAccessory(BasketService $basketService): JsonResponse
  67.     {
  68. //        if (!$this->getUser()) {
  69. //            return new JsonResponse(['success' => false, 'error' => 1]);
  70. //        }
  71.         return $basketService->addAccessory($this->getUser());
  72.     }
  73.     public function addCasco(BasketService $basketService): JsonResponse
  74.     {
  75.         if (!$this->getUser()) {
  76.             return new JsonResponse(['success' => false'error' => 1]);
  77.         }
  78.         return $basketService->addCasco($this->getUser());
  79.     }
  80.     public function addItemsToBasket(BasketService $basketService): JsonResponse
  81.     {
  82.         if (!$this->getUser()) {
  83.             return new JsonResponse(['success' => false'error' => 1]);
  84.         }
  85.         return $basketService->addItem($this->getUser());
  86.     }
  87.     public function getBasketByType(BasketService $basketService): JsonResponse
  88.     {
  89.         return $this->init($basketService);
  90.     }
  91.     public function checkoutOrder($type null): ?Response
  92.     {
  93.         return $this->baseMyRender('@My/Basket/checkout_order.html.twig', [
  94.             'type' => $type
  95.         ]);
  96.     }
  97. }