Skip to content

Commit f930d08

Browse files
fix CONDITION_MAPPING
1 parent 3e5aa85 commit f930d08

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

api/app/Rules/FormPropertyLogicRule.php

+15-13
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ class FormPropertyLogicRule implements DataAwareRule, ValidationRule
1818
'disable-block',
1919
];
2020

21+
private static $conditionMappingData = null;
22+
23+
public static function getConditionMapping()
24+
{
25+
if (self::$conditionMappingData === null) {
26+
self::$conditionMappingData = json_decode(file_get_contents(resource_path('data/open_filters.json')), true);
27+
}
28+
return self::$conditionMappingData;
29+
}
30+
2131
private $isConditionCorrect = true;
2232

2333
private $isActionCorrect = true;
@@ -30,16 +40,8 @@ class FormPropertyLogicRule implements DataAwareRule, ValidationRule
3040

3141
private $operator = '';
3242

33-
private $conditionMapping = [];
34-
35-
public function __construct()
36-
{
37-
$this->conditionMapping = json_decode(file_get_contents(resource_path('data/open_filters.json')), true);
38-
}
39-
4043
private function checkBaseCondition($condition)
4144
{
42-
4345
if (!isset($condition['value'])) {
4446
$this->isConditionCorrect = false;
4547
$this->conditionErrors[] = 'missing condition body';
@@ -80,21 +82,21 @@ private function checkBaseCondition($condition)
8082
$this->operator = $operator;
8183
$value = $condition['value']['value'];
8284

83-
if (!isset($this->conditionMapping[$typeField])) {
85+
if (!isset(self::getConditionMapping()[$typeField])) {
8486
$this->isConditionCorrect = false;
8587
$this->conditionErrors[] = 'configuration not found for condition type';
8688

8789
return;
8890
}
8991

90-
if (!isset($this->conditionMapping[$typeField]['comparators'][$operator])) {
92+
if (!isset(self::getConditionMapping()[$typeField]['comparators'][$operator])) {
9193
$this->isConditionCorrect = false;
9294
$this->conditionErrors[] = 'configuration not found for condition operator';
9395

9496
return;
9597
}
9698

97-
$type = $this->conditionMapping[$typeField]['comparators'][$operator]['expected_type'] ?? null;
99+
$type = self::getConditionMapping()[$typeField]['comparators'][$operator]['expected_type'] ?? null;
98100

99101
if (is_array($type)) {
100102
$foundCorrectType = false;
@@ -116,8 +118,8 @@ private function checkBaseCondition($condition)
116118

117119
private function valueHasCorrectType($type, $value)
118120
{
119-
if ($type === 'string' && isset($this->conditionMapping[$this->field['type']]['comparators'][$this->operator]['format'])) {
120-
$format = $this->conditionMapping[$this->field['type']]['comparators'][$this->operator]['format'];
121+
if ($type === 'string' && isset(self::getConditionMapping()[$this->field['type']]['comparators'][$this->operator]['format'])) {
122+
$format = self::getConditionMapping()[$this->field['type']]['comparators'][$this->operator]['format'];
121123
if ($format['type'] === 'regex') {
122124
try {
123125
preg_match('/' . $value . '/', '');

api/app/Rules/IntegrationLogicRule.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,21 @@ private function checkBaseCondition($condition)
5858
$operator = $condition['value']['operator'];
5959
$value = $condition['value']['value'];
6060

61-
if (!isset(FormPropertyLogicRule::CONDITION_MAPPING[$typeField])) {
61+
if (!isset(FormPropertyLogicRule::getConditionMapping()[$typeField])) {
6262
$this->isConditionCorrect = false;
6363
$this->conditionErrors[] = 'configuration not found for condition type';
6464

6565
return;
6666
}
6767

68-
if (!isset(FormPropertyLogicRule::CONDITION_MAPPING[$typeField]['comparators'][$operator])) {
68+
if (!isset(FormPropertyLogicRule::getConditionMapping()[$typeField]['comparators'][$operator])) {
6969
$this->isConditionCorrect = false;
7070
$this->conditionErrors[] = 'configuration not found for condition operator';
7171

7272
return;
7373
}
7474

75-
$type = FormPropertyLogicRule::CONDITION_MAPPING[$typeField]['comparators'][$operator]['expected_type'];
75+
$type = FormPropertyLogicRule::getConditionMapping()[$typeField]['comparators'][$operator]['expected_type'];
7676

7777
if (is_array($type)) {
7878
$foundCorrectType = false;

0 commit comments

Comments
 (0)