Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SetRepository.php
Go to the documentation of this file.
1 <?php
8 
10 
12 {
17 
22 
26  protected $filterBuilder;
27 
31  protected $eavConfig;
32 
39  public function __construct(
40  \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSetRepository,
41  \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder,
42  \Magento\Framework\Api\FilterBuilder $filterBuilder,
43  \Magento\Eav\Model\Config $eavConfig
44  ) {
45  $this->attributeSetRepository = $attributeSetRepository;
46  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
47  $this->filterBuilder = $filterBuilder;
48  $this->eavConfig = $eavConfig;
49  }
50 
54  public function save(\Magento\Eav\Api\Data\AttributeSetInterface $attributeSet)
55  {
56  $this->validate($attributeSet);
57  return $this->attributeSetRepository->save($attributeSet);
58  }
59 
63  public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
64  {
65  $this->searchCriteriaBuilder->setFilterGroups((array)$searchCriteria->getFilterGroups());
66  $this->searchCriteriaBuilder->addFilters(
67  [
68  $this->filterBuilder
69  ->setField('entity_type_code')
70  ->setValue(\Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE)
71  ->setConditionType('eq')
72  ->create(),
73  ]
74  );
75 
76  $this->searchCriteriaBuilder->setSortOrders((array)$searchCriteria->getSortOrders());
77  $this->searchCriteriaBuilder->setCurrentPage($searchCriteria->getCurrentPage());
78  $this->searchCriteriaBuilder->setPageSize($searchCriteria->getPageSize());
79 
80  $searchResult = $this->attributeSetRepository->getList($this->searchCriteriaBuilder->create());
81  $searchResult->setSearchCriteria($searchCriteria);
82 
83  return $searchResult;
84  }
85 
89  public function get($attributeSetId)
90  {
91  $attributeSet = $this->attributeSetRepository->get($attributeSetId);
92  $this->validate($attributeSet);
93  return $attributeSet;
94  }
95 
100  {
101  $this->validate($attributeSet);
102  return $this->attributeSetRepository->delete($attributeSet);
103  }
104 
108  public function deleteById($attributeSetId)
109  {
110  $this->get($attributeSetId);
111  return $this->attributeSetRepository->deleteById($attributeSetId);
112  }
113 
121  protected function validate(\Magento\Eav\Api\Data\AttributeSetInterface $attributeSet)
122  {
123  $productEntityId = $this->eavConfig->getEntityType(\Magento\Catalog\Model\Product::ENTITY)->getId();
124  if ($attributeSet->getEntityTypeId() != $productEntityId) {
125  throw new \Magento\Framework\Exception\StateException(
126  __('Provided Attribute set non product Attribute set.')
127  );
128  }
129  }
130 }
validate(\Magento\Eav\Api\Data\AttributeSetInterface $attributeSet)
getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
__construct(\Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSetRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Framework\Api\FilterBuilder $filterBuilder, \Magento\Eav\Model\Config $eavConfig)
__()
Definition: __.php:13
$searchCriteria
save(\Magento\Eav\Api\Data\AttributeSetInterface $attributeSet)