![]() 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/vendor/magento/module-catalog-rule/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogRule\Model; use Magento\CatalogRule\Api\Data; use Magento\Framework\Exception\CouldNotDeleteException; use Magento\Framework\Exception\CouldNotSaveException; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Exception\ValidatorException; class CatalogRuleRepository implements \Magento\CatalogRule\Api\CatalogRuleRepositoryInterface { /** * @var ResourceModel\Rule */ protected $ruleResource; /** * @var RuleFactory */ protected $ruleFactory; /** * @var array */ private $rules = []; /** * @param ResourceModel\Rule $ruleResource * @param RuleFactory $ruleFactory */ public function __construct( \Magento\CatalogRule\Model\ResourceModel\Rule $ruleResource, \Magento\CatalogRule\Model\RuleFactory $ruleFactory ) { $this->ruleResource = $ruleResource; $this->ruleFactory = $ruleFactory; } /** * {@inheritdoc} */ public function save(Data\RuleInterface $rule) { if ($rule->getRuleId()) { $rule = $this->get($rule->getRuleId())->addData($rule->getData()); } try { $this->ruleResource->save($rule); unset($this->rules[$rule->getId()]); } catch (ValidatorException $e) { throw new CouldNotSaveException(__($e->getMessage())); } catch (\Exception $e) { throw new CouldNotSaveException( __('The "%1" rule was unable to be saved. Please try again.', $rule->getRuleId()) ); } return $rule; } /** * {@inheritdoc} */ public function get($ruleId) { if (!isset($this->rules[$ruleId])) { /** @var \Magento\CatalogRule\Model\Rule $rule */ $rule = $this->ruleFactory->create(); /* TODO: change to resource model after entity manager will be fixed */ $rule->load($ruleId); if (!$rule->getRuleId()) { throw new NoSuchEntityException( __('The rule with the "%1" ID wasn\'t found. Verify the ID and try again.', $ruleId) ); } $this->rules[$ruleId] = $rule; } return $this->rules[$ruleId]; } /** * {@inheritdoc} */ public function delete(Data\RuleInterface $rule) { try { $this->ruleResource->delete($rule); unset($this->rules[$rule->getId()]); } catch (ValidatorException $e) { throw new CouldNotSaveException(__($e->getMessage())); } catch (\Exception $e) { throw new CouldNotDeleteException(__('The "%1" rule couldn\'t be removed.', $rule->getRuleId())); } return true; } /** * {@inheritdoc} */ public function deleteById($ruleId) { $model = $this->get($ruleId); $this->delete($model); return true; } }