123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Checkout\Controller\Sidebar;
- use Magento\Checkout\Model\Sidebar;
- use Magento\Framework\App\Action\Action;
- use Magento\Framework\App\Action\Context;
- use Magento\Framework\App\Response\Http;
- use Magento\Framework\Exception\LocalizedException;
- use Magento\Framework\Json\Helper\Data;
- use Psr\Log\LoggerInterface;
- class UpdateItemQty extends Action
- {
- /**
- * @var Sidebar
- */
- protected $sidebar;
- /**
- * @var LoggerInterface
- */
- protected $logger;
- /**
- * @var Data
- */
- protected $jsonHelper;
- /**
- * @param Context $context
- * @param Sidebar $sidebar
- * @param LoggerInterface $logger
- * @param Data $jsonHelper
- * @codeCoverageIgnore
- */
- public function __construct(
- Context $context,
- Sidebar $sidebar,
- LoggerInterface $logger,
- Data $jsonHelper
- ) {
- $this->sidebar = $sidebar;
- $this->logger = $logger;
- $this->jsonHelper = $jsonHelper;
- parent::__construct($context);
- }
- /**
- * @return $this
- */
- public function execute()
- {
- $itemId = (int)$this->getRequest()->getParam('item_id');
- $itemQty = $this->getRequest()->getParam('item_qty') * 1;
- try {
- $this->sidebar->checkQuoteItem($itemId);
- $this->sidebar->updateQuoteItem($itemId, $itemQty);
- return $this->jsonResponse();
- } catch (LocalizedException $e) {
- return $this->jsonResponse($e->getMessage());
- } catch (\Exception $e) {
- $this->logger->critical($e);
- return $this->jsonResponse($e->getMessage());
- }
- }
- /**
- * Compile JSON response
- *
- * @param string $error
- * @return Http
- */
- protected function jsonResponse($error = '')
- {
- return $this->getResponse()->representJson(
- $this->jsonHelper->jsonEncode($this->sidebar->getResponseData($error))
- );
- }
- }
|