Skip to content

Commit e91f881

Browse files
committed
Optimize filters
1 parent 3e7667e commit e91f881

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

config/rest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
return [
44

5+
/*
6+
|--------------------------------------------------------------------------
7+
| Filters
8+
|--------------------------------------------------------------------------
9+
|
10+
| Custom filters
11+
|
12+
*/
13+
14+
'filters' => [
15+
'max_depth' => 3,
16+
],
17+
518
/*
619
|--------------------------------------------------------------------------
720
| Rest Gates

src/Concerns/Resource/ConfiguresRestParameters.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function getFields(\Lomkit\Rest\Http\Requests\RestRequest $request): arra
4646
*
4747
* @return array
4848
*/
49-
public function getNestedFields(RestRequest $request, string $prefix = '', array $loadedRelations = [])
49+
public function getNestedFields(RestRequest $request, int $maxDepth = 3, string $prefix = '', array $loadedRelations = [])
5050
{
5151
if ($prefix !== '') {
5252
$prefix = $prefix.'.';
@@ -69,7 +69,7 @@ function ($field) use ($prefix) {
6969
$loadedRelations[] = $relation->relation;
7070
array_push(
7171
$fields,
72-
...$relation->resource()->getNestedFields($request, $prefix.$relation->relation, $loadedRelations),
72+
...($maxDepth > 0 ? $relation->resource()->getNestedFields($request, $maxDepth - 1, $prefix.$relation->relation, $loadedRelations) : []),
7373
// We push the pivot fields if they exists
7474
...collect(method_exists($relation, 'getPivotFields') ? $relation->getPivotFields() : [])
7575
->map(function ($field) use ($relation, $prefix) { return $prefix.$relation->relation.'.pivot.'.$field; })

0 commit comments

Comments
 (0)