File tree Expand file tree Collapse file tree 5 files changed +37
-4
lines changed Expand file tree Collapse file tree 5 files changed +37
-4
lines changed Original file line number Diff line number Diff line change 1515use LaravelJsonApi \Eloquent \Contracts \Filter ;
1616use LaravelJsonApi \Eloquent \Filters \Concerns \DeserializesValue ;
1717use LaravelJsonApi \Eloquent \Filters \Concerns \IsSingular ;
18+ use LaravelJsonApi \Validation \Filters \ValidatedWithRules ;
1819
1920class Scope implements Filter
2021{
2122 use DeserializesValue;
2223 use IsSingular;
24+ use ValidatedWithRules;
2325
2426 /**
2527 * @var string
Original file line number Diff line number Diff line change 1111
1212namespace LaravelJsonApi \Eloquent \Filters ;
1313
14+ use Closure ;
1415use Illuminate \Database \Eloquent \Model ;
1516use LaravelJsonApi \Contracts \Schema \ID ;
1617use LaravelJsonApi \Contracts \Schema \Schema ;
1718use LaravelJsonApi \Core \Schema \IdParser ;
1819use LaravelJsonApi \Eloquent \Contracts \Filter ;
1920use LaravelJsonApi \Eloquent \Filters \Concerns \HasDelimiter ;
2021use LaravelJsonApi \Eloquent \Schema as EloquentSchema ;
22+ use LaravelJsonApi \Validation \Filters \ValidatedWithRules ;
23+ use LaravelJsonApi \Validation \Rules \ListOfIds ;
2124
2225class WhereIdIn implements Filter
2326{
2427 use HasDelimiter;
28+ use ValidatedWithRules;
2529
2630 /**
2731 * @var ID
@@ -143,4 +147,11 @@ protected function deserialize($value): array
143147 );
144148 }
145149
150+ /**
151+ * @return array<int, mixed>
152+ */
153+ protected function defaultRules (): array
154+ {
155+ return [new ListOfIds ($ this ->field , $ this ->delimiter )];
156+ }
146157}
Original file line number Diff line number Diff line change 1616use LaravelJsonApi \Eloquent \Filters \Concerns \DeserializesValue ;
1717use LaravelJsonApi \Eloquent \Filters \Concerns \HasColumn ;
1818use LaravelJsonApi \Eloquent \Filters \Concerns \HasDelimiter ;
19+ use LaravelJsonApi \Validation \Filters \ValidatedWithRules ;
1920
2021class WhereIn implements Filter
2122{
2223 use DeserializesValue;
2324 use HasColumn;
2425 use HasDelimiter;
26+ use ValidatedWithRules;
2527
2628 /**
2729 * @var string
@@ -103,5 +105,4 @@ private function guessColumn(): string
103105 Str::singular ($ this ->name )
104106 );
105107 }
106-
107108}
Original file line number Diff line number Diff line change 1313
1414class WhereNotIn extends WhereIn
1515{
16-
1716 /**
1817 * @inheritDoc
1918 */
Original file line number Diff line number Diff line change 2020use LaravelJsonApi \Core \Pagination \Concerns \HasPageNumbers ;
2121use LaravelJsonApi \Core \Pagination \Page ;
2222use LaravelJsonApi \Eloquent \Contracts \Paginator ;
23+ use LaravelJsonApi \Validation \Pagination \IsValidated ;
24+ use LaravelJsonApi \Validation \Pagination \Validated ;
2325
24- class PagePagination implements Paginator
26+ class PagePagination implements Paginator, IsValidated
2527{
26-
2728 use HasPageMeta;
2829 use HasPageNumbers;
30+ use Validated;
2931
3032 /**
3133 * @var array|null
@@ -171,6 +173,24 @@ protected function isSimplePagination(): bool
171173 return (bool ) $ this ->simplePagination ;
172174 }
173175
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+
174194 /**
175195 * @param Builder|Relation $query
176196 * @return bool
You can’t perform that action at this time.
0 commit comments