![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/app/code/Webkul/PrivateShop/Model/ |
<?php /** * Webkul Software * * @category Webkul * @package Webkul_PrivateShop * @author Webkul Software Private Limited * @copyright Webkul Software Private Limited (https://webkul.com) * @license https://store.webkul.com/license.html */ namespace Webkul\PrivateShop\Model; use Magento\Store\Model\StoreManagerInterface; use Webkul\PrivateShop\Api\PrivateProductRepositoryInterface; use Magento\Framework\Exception\CouldNotDeleteException; use Magento\Framework\Exception\CouldNotSaveException; use Webkul\PrivateShop\Model\ResourceModel\PrivateProduct\CollectionFactory as PrivateProductCollectionFactory; use Webkul\PrivateShop\Api\Data\PrivateProductSearchResultsInterfaceFactory; use Magento\Framework\Api\SortOrder; use Magento\Framework\Api\DataObjectHelper; use Magento\Framework\Reflection\DataObjectProcessor; use Magento\Framework\Exception\NoSuchEntityException; use Webkul\PrivateShop\Api\Data\PrivateProductInterfaceFactory; use Webkul\PrivateShop\Model\ResourceModel\PrivateProduct as ResourcePrivateProduct; class PrivateProductRepository implements PrivateProductRepositoryInterface { /** * @var PrivateProductInterfaceFactory */ protected $dataPrivateProductFactory; /** * @var PrivateProductCollectionFactory */ protected $privateProductCollectionFactory; /** * @var PrivateProductFactory */ protected $privateProductFactory; /** * @var DataObjectProcessor */ protected $dataObjectProcessor; /** * @var PrivateProductSearchResultsInterfaceFactory */ protected $searchResultsFactory; /** * @var StoreManagerInterface */ private $storeManager; /** * @var ResourcePrivateProduct */ protected $resource; /** * @var DataObjectHelper */ protected $dataObjectHelper; /** * @param ResourcePrivateProduct $resource * @param PrivateProductFactory $privateProductFactory * @param PrivateProductInterfaceFactory $dataPrivateProductFactory * @param PrivateProductCollectionFactory $privateProductCollectionFactory * @param PrivateProductSearchResultsInterfaceFactory $searchResultsFactory * @param DataObjectHelper $dataObjectHelper * @param DataObjectProcessor $dataObjectProcessor * @param StoreManagerInterface $storeManager */ public function __construct( ResourcePrivateProduct $resource, PrivateProductFactory $privateProductFactory, PrivateProductInterfaceFactory $dataPrivateProductFactory, PrivateProductCollectionFactory $privateProductCollectionFactory, PrivateProductSearchResultsInterfaceFactory $searchResultsFactory, DataObjectHelper $dataObjectHelper, DataObjectProcessor $dataObjectProcessor, StoreManagerInterface $storeManager ) { $this->resource = $resource; $this->privateProductFactory = $privateProductFactory; $this->privateProductCollectionFactory = $privateProductCollectionFactory; $this->searchResultsFactory = $searchResultsFactory; $this->dataObjectHelper = $dataObjectHelper; $this->dataPrivateProductFactory = $dataPrivateProductFactory; $this->dataObjectProcessor = $dataObjectProcessor; $this->storeManager = $storeManager; } /** * Save PrivateProduct * * @param \Webkul\PrivateShop\Api\Data\PrivateProductInterface $privateProduct * @return \Webkul\PrivateShop\Api\Data\PrivateProductInterface * @throws \Magento\Framework\Exception\LocalizedException */ public function save( \Webkul\PrivateShop\Api\Data\PrivateProductInterface $privateProduct ) { try { $this->resource->save($privateProduct); } catch (\Exception $exception) { throw new CouldNotSaveException(__( 'Could not save the privateProduct: %1', $exception->getMessage() )); } return $privateProduct; } /** * Retrieve PrivateProduct * * @param string $privateProductId * @return \Webkul\PrivateShop\Api\Data\PrivateProductInterface * @throws \Magento\Framework\Exception\LocalizedException */ public function getById($privateProductId) { $privateProduct = $this->privateProductFactory->create(); $this->resource->load($privateProduct, $privateProductId); if (!$privateProduct->getId()) { throw new NoSuchEntityException(__('Private Product with id "%1" does not exist.', $privateProductId)); } return $privateProduct; } /** * Retrieve PrivateProduct matching the specified criteria. * * @param \Magento\Framework\Api\SearchCriteriaInterface $criteria * @return \Webkul\PrivateShop\Api\Data\PrivateProductSearchResultsInterface * @throws \Magento\Framework\Exception\LocalizedException */ public function getList( \Magento\Framework\Api\SearchCriteriaInterface $criteria ) { $collection = $this->privateProductCollectionFactory->create(); foreach ($criteria->getFilterGroups() as $filterGroup) { $fields = []; $conditions = []; foreach ($filterGroup->getFilters() as $filter) { if ($filter->getField() === 'store_id') { $collection->addStoreFilter($filter->getValue(), false); continue; } $fields[] = $filter->getField(); $condition = $filter->getConditionType() ?: 'eq'; $conditions[] = [$condition => $filter->getValue()]; } $collection->addFieldToFilter($fields, $conditions); } $sortOrders = $criteria->getSortOrders(); if ($sortOrders) { /** @var SortOrder $sortOrder */ foreach ($sortOrders as $sortOrder) { $collection->addOrder( $sortOrder->getField(), ($sortOrder->getDirection() == SortOrder::SORT_ASC) ? 'ASC' : 'DESC' ); } } $collection->setCurPage($criteria->getCurrentPage()); $collection->setPageSize($criteria->getPageSize()); $searchResults = $this->searchResultsFactory->create(); $searchResults->setSearchCriteria($criteria); $searchResults->setTotalCount($collection->getSize()); $searchResults->setItems($collection->getItems()); return $searchResults; } /** * Delete PrivateProduct * * @param \Webkul\PrivateShop\Api\Data\PrivateProductInterface $privateProduct * @return bool true on success * @throws \Magento\Framework\Exception\LocalizedException */ public function delete( \Webkul\PrivateShop\Api\Data\PrivateProductInterface $privateProduct ) { try { $this->resource->delete($privateProduct); } catch (\Exception $exception) { throw new CouldNotDeleteException(__( 'Could not delete the PrivateProduct: %1', $exception->getMessage() )); } return true; } /** * Delete PrivateProduct by ID * * @param string $privateProductId * @return bool true on success * @throws \Magento\Framework\Exception\NoSuchEntityException * @throws \Magento\Framework\Exception\LocalizedException */ public function deleteById($privateProductId) { return $this->delete($this->getById($privateProductId)); } }