12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Wishlist\Controller;
- use Magento\Framework\App\RequestInterface;
- class WishlistProvider implements WishlistProviderInterface
- {
- /**
- * @var \Magento\Wishlist\Model\Wishlist
- */
- protected $wishlist;
- /**
- * @var \Magento\Wishlist\Model\WishlistFactory
- */
- protected $wishlistFactory;
- /**
- * @var \Magento\Customer\Model\Session
- */
- protected $customerSession;
- /**
- * @var \Magento\Framework\Message\ManagerInterface
- */
- protected $messageManager;
- /**
- * @var \Magento\Framework\App\RequestInterface
- */
- protected $request;
- /**
- * @param \Magento\Wishlist\Model\WishlistFactory $wishlistFactory
- * @param \Magento\Customer\Model\Session $customerSession
- * @param \Magento\Framework\Message\ManagerInterface $messageManager
- * @param RequestInterface $request
- */
- public function __construct(
- \Magento\Wishlist\Model\WishlistFactory $wishlistFactory,
- \Magento\Customer\Model\Session $customerSession,
- \Magento\Framework\Message\ManagerInterface $messageManager,
- RequestInterface $request
- ) {
- $this->request = $request;
- $this->wishlistFactory = $wishlistFactory;
- $this->customerSession = $customerSession;
- $this->messageManager = $messageManager;
- }
- /**
- * {@inheritdoc}
- * @SuppressWarnings(PHPMD.CyclomaticComplexity)
- */
- public function getWishlist($wishlistId = null)
- {
- if ($this->wishlist) {
- return $this->wishlist;
- }
- try {
- if (!$wishlistId) {
- $wishlistId = $this->request->getParam('wishlist_id');
- }
- $customerId = $this->customerSession->getCustomerId();
- $wishlist = $this->wishlistFactory->create();
- if (!$wishlistId && !$customerId) {
- return $wishlist;
- }
- if ($wishlistId) {
- $wishlist->load($wishlistId);
- } elseif ($customerId) {
- $wishlist->loadByCustomerId($customerId, true);
- }
- if (!$wishlist->getId() || $wishlist->getCustomerId() != $customerId) {
- throw new \Magento\Framework\Exception\NoSuchEntityException(
- __('The requested Wish List doesn\'t exist.')
- );
- }
- } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
- $this->messageManager->addError($e->getMessage());
- return false;
- } catch (\Exception $e) {
- $this->messageManager->addException($e, __('We can\'t create the Wish List right now.'));
- return false;
- }
- $this->wishlist = $wishlist;
- return $wishlist;
- }
- }
|