Rules.php
736 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
namespace ACP\Search\Middleware;
class Rules {
/**
* @param string $rules_raw
*
* @return array
*/
public function __invoke( string $rules_raw ) {
$input = json_decode( $rules_raw );
if ( ! $input || ! $input->rules ) {
return [];
}
$operator = new Mapping\Operator( Mapping::REQUEST );
$value_type = new Mapping\ValueType( Mapping::REQUEST );
$rules = [];
foreach ( $input->rules as $rule ) {
$rules[] = [
'name' => $rule->id,
'operator' => $operator->{$rule->operator},
'value' => $rule->value,
'value_type' => $value_type->{$rule->type},
'value_label' => isset( $rule->formatted_value ) ? $rule->formatted_value : null,
];
}
return $rules;
}
}