Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Converter.php
Go to the documentation of this file.
1 <?php
7 
8 class Converter
9 {
14 
18  public function __construct(\Magento\CatalogRule\Api\Data\ConditionInterfaceFactory $ruleConditionFactory)
19  {
20  $this->ruleConditionFactory = $ruleConditionFactory;
21  }
22 
27  public function dataModelToArray(\Magento\CatalogRule\Api\Data\ConditionInterface $dataModel)
28  {
29  $conditionArray = [
30  'type' => $dataModel->getType(),
31  'attribute' => $dataModel->getAttribute(),
32  'operator' => $dataModel->getOperator(),
33  'value' => $dataModel->getValue(),
34  'is_value_processed' => $dataModel->getIsValueParsed(),
35  'aggregator' => $dataModel->getAggregator()
36  ];
37 
38  foreach ((array)$dataModel->getConditions() as $condition) {
39  $conditionArray['conditions'][] = $this->dataModelToArray($condition);
40  }
41 
42  return $conditionArray;
43  }
44 
50  public function arrayToDataModel(array $conditionArray)
51  {
53  $ruleCondition = $this->ruleConditionFactory->create();
54 
55  $ruleCondition->setType($conditionArray['type']);
56  $ruleCondition->setAggregator(isset($conditionArray['aggregator']) ? $conditionArray['aggregator'] : false);
57  $ruleCondition->setAttribute(isset($conditionArray['attribute']) ? $conditionArray['attribute'] : false);
58  $ruleCondition->setOperator(isset($conditionArray['operator']) ? $conditionArray['operator'] : false);
59  $ruleCondition->setValue(isset($conditionArray['value']) ? $conditionArray['value'] : false);
60  $ruleCondition->setIsValueParsed(
61  isset($conditionArray['is_value_parsed']) ? $conditionArray['is_value_parsed'] : false
62  );
63 
64  if (isset($conditionArray['conditions']) && is_array($conditionArray['conditions'])) {
65  $conditions = [];
66  foreach ($conditionArray['conditions'] as $condition) {
67  $conditions[] = $this->arrayToDataModel($condition);
68  }
69  $ruleCondition->setConditions($conditions);
70  }
71  return $ruleCondition;
72  }
73 }
dataModelToArray(\Magento\CatalogRule\Api\Data\ConditionInterface $dataModel)
Definition: Converter.php:27
__construct(\Magento\CatalogRule\Api\Data\ConditionInterfaceFactory $ruleConditionFactory)
Definition: Converter.php:18