File tree 5 files changed +37
-4
lines changed
5 files changed +37
-4
lines changed Original file line number Diff line number Diff line change 15
15
use LaravelJsonApi \Eloquent \Contracts \Filter ;
16
16
use LaravelJsonApi \Eloquent \Filters \Concerns \DeserializesValue ;
17
17
use LaravelJsonApi \Eloquent \Filters \Concerns \IsSingular ;
18
+ use LaravelJsonApi \Validation \Filters \ValidatedWithRules ;
18
19
19
20
class Scope implements Filter
20
21
{
21
22
use DeserializesValue;
22
23
use IsSingular;
24
+ use ValidatedWithRules;
23
25
24
26
/**
25
27
* @var string
Original file line number Diff line number Diff line change 11
11
12
12
namespace LaravelJsonApi \Eloquent \Filters ;
13
13
14
+ use Closure ;
14
15
use Illuminate \Database \Eloquent \Model ;
15
16
use LaravelJsonApi \Contracts \Schema \ID ;
16
17
use LaravelJsonApi \Contracts \Schema \Schema ;
17
18
use LaravelJsonApi \Core \Schema \IdParser ;
18
19
use LaravelJsonApi \Eloquent \Contracts \Filter ;
19
20
use LaravelJsonApi \Eloquent \Filters \Concerns \HasDelimiter ;
20
21
use LaravelJsonApi \Eloquent \Schema as EloquentSchema ;
22
+ use LaravelJsonApi \Validation \Filters \ValidatedWithRules ;
23
+ use LaravelJsonApi \Validation \Rules \ListOfIds ;
21
24
22
25
class WhereIdIn implements Filter
23
26
{
24
27
use HasDelimiter;
28
+ use ValidatedWithRules;
25
29
26
30
/**
27
31
* @var ID
@@ -143,4 +147,11 @@ protected function deserialize($value): array
143
147
);
144
148
}
145
149
150
+ /**
151
+ * @return array<int, mixed>
152
+ */
153
+ protected function defaultRules (): array
154
+ {
155
+ return [new ListOfIds ($ this ->field , $ this ->delimiter )];
156
+ }
146
157
}
Original file line number Diff line number Diff line change 16
16
use LaravelJsonApi \Eloquent \Filters \Concerns \DeserializesValue ;
17
17
use LaravelJsonApi \Eloquent \Filters \Concerns \HasColumn ;
18
18
use LaravelJsonApi \Eloquent \Filters \Concerns \HasDelimiter ;
19
+ use LaravelJsonApi \Validation \Filters \ValidatedWithRules ;
19
20
20
21
class WhereIn implements Filter
21
22
{
22
23
use DeserializesValue;
23
24
use HasColumn;
24
25
use HasDelimiter;
26
+ use ValidatedWithRules;
25
27
26
28
/**
27
29
* @var string
@@ -103,5 +105,4 @@ private function guessColumn(): string
103
105
Str::singular ($ this ->name )
104
106
);
105
107
}
106
-
107
108
}
Original file line number Diff line number Diff line change 13
13
14
14
class WhereNotIn extends WhereIn
15
15
{
16
-
17
16
/**
18
17
* @inheritDoc
19
18
*/
Original file line number Diff line number Diff line change 20
20
use LaravelJsonApi \Core \Pagination \Concerns \HasPageNumbers ;
21
21
use LaravelJsonApi \Core \Pagination \Page ;
22
22
use LaravelJsonApi \Eloquent \Contracts \Paginator ;
23
+ use LaravelJsonApi \Validation \Pagination \IsValidated ;
24
+ use LaravelJsonApi \Validation \Pagination \Validated ;
23
25
24
- class PagePagination implements Paginator
26
+ class PagePagination implements Paginator, IsValidated
25
27
{
26
-
27
28
use HasPageMeta;
28
29
use HasPageNumbers;
30
+ use Validated;
29
31
30
32
/**
31
33
* @var array|null
@@ -171,6 +173,24 @@ protected function isSimplePagination(): bool
171
173
return (bool ) $ this ->simplePagination ;
172
174
}
173
175
176
+ /**
177
+ * @return array
178
+ */
179
+ protected function defaultRules (): array
180
+ {
181
+ return [
182
+ $ this ->pageKey => array_filter ([
183
+ $ this ->required ? 'required ' : null ,
184
+ 'integer ' ,
185
+ 'min:1 ' ,
186
+ ]),
187
+ $ this ->perPageKey => [
188
+ 'integer ' ,
189
+ $ this ->maxPerPage > 0 ? 'between:1, ' . $ this ->maxPerPage : 'min:1 ' ,
190
+ ],
191
+ ];
192
+ }
193
+
174
194
/**
175
195
* @param Builder|Relation $query
176
196
* @return bool
You can’t perform that action at this time.
0 commit comments