Skip to content

Commit 4f57832

Browse files
committed
fix(specs): add "all in" and "any in" filters
1 parent f063f6d commit 4f57832

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

src/Drivers/Standard/ParamsValidator.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,15 @@ public function validateFilters(Request $request): void
5252
[
5353
'filters' => ['sometimes', 'array'],
5454
'filters.*.type' => ['sometimes', 'in:and,or'],
55-
'filters.*.field' => ['required_with:filters', 'regex:/^[\w.\_\-\>]+$/', new WhitelistedField($this->filterableBy)],
56-
'filters.*.operator' => ['sometimes', 'in:<,<=,>,>=,=,!=,like,not like,ilike,not ilike,in,not in,all in,any in'],
55+
'filters.*.field' => [
56+
'required_with:filters',
57+
'regex:/^[\w.\_\-\>]+$/',
58+
new WhitelistedField($this->filterableBy),
59+
],
60+
'filters.*.operator' => [
61+
'sometimes',
62+
'in:<,<=,>,>=,=,!=,like,not like,ilike,not ilike,in,not in,all in,any in',
63+
],
5764
'filters.*.value' => ['present', 'nullable'],
5865
]
5966
)->validate();
@@ -65,7 +72,11 @@ public function validateSort(Request $request): void
6572
$request->all(),
6673
[
6774
'sort' => ['sometimes', 'array'],
68-
'sort.*.field' => ['required_with:sort', 'regex:/^[\w.\_\-\>]+$/', new WhitelistedField($this->sortableBy)],
75+
'sort.*.field' => [
76+
'required_with:sort',
77+
'regex:/^[\w.\_\-\>]+$/',
78+
new WhitelistedField($this->sortableBy),
79+
],
6980
'sort.*.direction' => ['sometimes', 'in:asc,desc'],
7081
]
7182
)->validate();
@@ -78,7 +89,7 @@ public function validateSearch(Request $request): void
7889
[
7990
'search' => ['sometimes', 'array'],
8091
'search.value' => ['string', 'nullable'],
81-
'search.case_sensitive' => ['bool']
92+
'search.case_sensitive' => ['bool'],
8293
]
8394
)->validate();
8495
}

src/Specs/Builders/Partials/RequestBody/Search/FiltersBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function build(): ?array
2929
],
3030
'operator' => [
3131
'type' => 'string',
32-
'enum' => ['<','<=','>','>=','=','!=','like','not like','ilike','not ilike','in','not in'],
32+
'enum' => ['<','<=','>','>=','=','!=','like','not like','ilike','not ilike','in','not in', 'all in', 'any in'],
3333
],
3434
'value' => [
3535
'type' => 'string',

0 commit comments

Comments
 (0)