diff --git a/composer.json b/composer.json index adf8ecd..4cbb164 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "require": { "php": "^7.4|^8.0", "ext-json": "*", - "laravel-json-api/core": "^1.0.0-beta.2", + "laravel-json-api/core": "^1.0.0-beta.3", "laravel-json-api/eloquent": "^1.0.0-beta.3", "laravel-json-api/encoder-neomerx": "^1.0.0-beta.1", "laravel-json-api/exceptions": "^1.0.0-beta.2", diff --git a/src/Http/Controllers/Actions/FetchMany.php b/src/Http/Controllers/Actions/FetchMany.php index 7f9d0e2..9cbbffd 100644 --- a/src/Http/Controllers/Actions/FetchMany.php +++ b/src/Http/Controllers/Actions/FetchMany.php @@ -61,6 +61,6 @@ public function index(Route $route, StoreContract $store) $response = $this->searched($data, $request); } - return $response ?: new DataResponse($data); + return $response ?: DataResponse::make($data)->withQueryParameters($request); } } diff --git a/src/Http/Controllers/Actions/FetchOne.php b/src/Http/Controllers/Actions/FetchOne.php index 6f8debc..1851226 100644 --- a/src/Http/Controllers/Actions/FetchOne.php +++ b/src/Http/Controllers/Actions/FetchOne.php @@ -61,6 +61,6 @@ public function show(Route $route, StoreContract $store) $response = $this->read($model, $request); } - return $response ?: new DataResponse($model); + return $response ?: DataResponse::make($model)->withQueryParameters($request); } } diff --git a/src/Http/Controllers/Actions/FetchRelated.php b/src/Http/Controllers/Actions/FetchRelated.php index 016ef9f..c8d1474 100644 --- a/src/Http/Controllers/Actions/FetchRelated.php +++ b/src/Http/Controllers/Actions/FetchRelated.php @@ -76,10 +76,10 @@ public function showRelated(Route $route, StoreContract $store) $response = $this->{$hook}($model, $data, $request); } - return $response ?: new RelatedResponse( + return $response ?: RelatedResponse::make( $model, $relation->name(), $data, - ); + )->withQueryParameters($request); } } diff --git a/src/Http/Controllers/Actions/FetchRelationship.php b/src/Http/Controllers/Actions/FetchRelationship.php index becd6f0..8f18d23 100644 --- a/src/Http/Controllers/Actions/FetchRelationship.php +++ b/src/Http/Controllers/Actions/FetchRelationship.php @@ -76,10 +76,10 @@ public function showRelationship(Route $route, StoreContract $store) $response = $this->{$hook}($model, $data, $request); } - return $response ?: new RelationshipResponse( + return $response ?: RelationshipResponse::make( $model, $relation->name(), $data - ); + )->withQueryParameters($request); } } diff --git a/src/Http/Controllers/Actions/Store.php b/src/Http/Controllers/Actions/Store.php index cd97666..5b4b385 100644 --- a/src/Http/Controllers/Actions/Store.php +++ b/src/Http/Controllers/Actions/Store.php @@ -71,6 +71,6 @@ public function store(Route $route, StoreContract $store) $response = $this->saved($model, $request, $query); } - return $response ?: new DataResponse($model); + return $response ?: DataResponse::make($model)->withQueryParameters($query); } } diff --git a/src/Http/Controllers/Actions/Update.php b/src/Http/Controllers/Actions/Update.php index 91241dc..c0b080b 100644 --- a/src/Http/Controllers/Actions/Update.php +++ b/src/Http/Controllers/Actions/Update.php @@ -73,6 +73,6 @@ public function update(Route $route, StoreContract $store) $response = $this->saved($model, $request, $query); } - return $response ?: new DataResponse($model); + return $response ?: DataResponse::make($model)->withQueryParameters($query); } } diff --git a/src/Http/Controllers/Actions/UpdateRelationship.php b/src/Http/Controllers/Actions/UpdateRelationship.php index 625185b..47aa47c 100644 --- a/src/Http/Controllers/Actions/UpdateRelationship.php +++ b/src/Http/Controllers/Actions/UpdateRelationship.php @@ -81,10 +81,10 @@ public function updateRelationship(Route $route, StoreContract $store) $response = $this->{$hook}($model, $result, $request, $query); } - return $response ?: new RelationshipResponse( + return $response ?: RelationshipResponse::make( $model, $fieldName, $result - ); + )->withQueryParameters($query); } } diff --git a/src/Http/Requests/ResourceQuery.php b/src/Http/Requests/ResourceQuery.php index dde3177..86ad29c 100644 --- a/src/Http/Requests/ResourceQuery.php +++ b/src/Http/Requests/ResourceQuery.php @@ -52,6 +52,11 @@ class ResourceQuery extends FormRequest implements QueryParameters self::JSON_API_MEDIA_TYPE, ]; + /** + * @var string[]|null + */ + protected ?array $defaultIncludePaths = null; + /** * Specify the callback to use to guess the request class for querying many resources. * @@ -149,7 +154,7 @@ public function includePaths(): ?IncludePaths return IncludePaths::fromString($data['include'] ?: ''); } - return null; + return IncludePaths::nullable($this->defaultIncludePaths); } /**