|
10 | 10 | use Kettasoft\Filterable\Engines\Foundation\Engine; |
11 | 11 | use Kettasoft\Filterable\Support\RelationPathParser; |
12 | 12 | use Kettasoft\Filterable\Support\AllowedFieldChecker; |
| 13 | +use Kettasoft\Filterable\Engines\Foundation\ClauseApplier; |
13 | 14 | use Kettasoft\Filterable\Engines\Foundation\ClauseFactory; |
14 | 15 | use Kettasoft\Filterable\Support\TreeBasedRelationsResolver; |
| 16 | +use Kettasoft\Filterable\Engines\Foundation\Appliers\Applier; |
15 | 17 | use Kettasoft\Filterable\Engines\Contracts\TreeFilterableContext; |
16 | 18 | use Kettasoft\Filterable\Engines\Contracts\HasAllowedFieldChecker; |
17 | 19 | use Kettasoft\Filterable\Support\TreeBasedSignelConditionResolver; |
@@ -54,27 +56,17 @@ private function applyNode(Builder $builder, TreeNode $node) |
54 | 56 | } else { |
55 | 57 |
|
56 | 58 | $clause = (new ClauseFactory($this))->make( |
57 | | - new Payload($node->field, $node->operator ?? $this->defaultOperator(), $node->value, null) |
| 59 | + new Payload($node->field, $node->operator ?? $this->defaultOperator(), $this->sanitizeValue($node->field, $node->value), $node->value) |
58 | 60 | ); |
59 | 61 |
|
60 | 62 | if (! $clause->validated) { |
61 | 63 | return $builder; // skip disallowed field |
62 | 64 | } |
63 | 65 |
|
64 | | - [$_, $field] = RelationPathParser::resolve($node->field); |
65 | | - |
66 | | - $field = $clause->field; |
67 | | - $operator = $clause->operator; |
68 | | - $value = $clause->value; |
69 | | - |
70 | 66 | if ($clause->isRelational()) { |
71 | 67 | $clause->relation($this->getResources()->relations)->resolve($builder, $clause); |
72 | 68 | } else { |
73 | | - if (! AllowedFieldChecker::check($this, $field)) { |
74 | | - return; |
75 | | - } |
76 | | - |
77 | | - TreeBasedSignelConditionResolver::resolve($builder, $field, $operator, $value); |
| 69 | + Applier::apply(new ClauseApplier($clause), $builder); |
78 | 70 | } |
79 | 71 | } |
80 | 72 |
|
|
0 commit comments