From dbd3ceec9c4bfac461139d6570b0231062fc1765 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Wed, 5 May 2021 14:17:24 +0930 Subject: [PATCH] Pass context to AdapterInterface::newQuery() --- src/Adapter/AdapterInterface.php | 3 ++- src/Adapter/EloquentAdapter.php | 3 ++- src/Endpoint/Concerns/FindsResources.php | 2 +- src/Endpoint/Index.php | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Adapter/AdapterInterface.php b/src/Adapter/AdapterInterface.php index fe0a66c..cc53933 100644 --- a/src/Adapter/AdapterInterface.php +++ b/src/Adapter/AdapterInterface.php @@ -11,6 +11,7 @@ namespace Tobyz\JsonApiServer\Adapter; +use Tobyz\JsonApiServer\Context; use Tobyz\JsonApiServer\Schema\Attribute; use Tobyz\JsonApiServer\Schema\HasMany; use Tobyz\JsonApiServer\Schema\HasOne; @@ -27,7 +28,7 @@ interface AdapterInterface * * @return mixed */ - public function newQuery(); + public function newQuery(Context $context); /** * Manipulate the query to only include resources with the given IDs. diff --git a/src/Adapter/EloquentAdapter.php b/src/Adapter/EloquentAdapter.php index 9a82fa6..f74dd8d 100644 --- a/src/Adapter/EloquentAdapter.php +++ b/src/Adapter/EloquentAdapter.php @@ -18,6 +18,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasOneThrough; use Illuminate\Database\Eloquent\Relations\MorphOneOrMany; use InvalidArgumentException; +use Tobyz\JsonApiServer\Context; use Tobyz\JsonApiServer\Schema\Attribute; use Tobyz\JsonApiServer\Schema\HasMany; use Tobyz\JsonApiServer\Schema\HasOne; @@ -49,7 +50,7 @@ class EloquentAdapter implements AdapterInterface return $this->model->newInstance(); } - public function newQuery() + public function newQuery(Context $context) { return $this->model->query(); } diff --git a/src/Endpoint/Concerns/FindsResources.php b/src/Endpoint/Concerns/FindsResources.php index 13e01fc..9200e5f 100644 --- a/src/Endpoint/Concerns/FindsResources.php +++ b/src/Endpoint/Concerns/FindsResources.php @@ -26,7 +26,7 @@ trait FindsResources private function findResource(ResourceType $resource, string $id, Context $context) { $adapter = $resource->getAdapter(); - $query = $adapter->newQuery(); + $query = $adapter->newQuery($context); run_callbacks($resource->getSchema()->getListeners('scope'), [$query, $context]); diff --git a/src/Endpoint/Index.php b/src/Endpoint/Index.php index 464f17c..87665bc 100644 --- a/src/Endpoint/Index.php +++ b/src/Endpoint/Index.php @@ -57,7 +57,7 @@ class Index throw new ForbiddenException; } - $query = $adapter->newQuery(); + $query = $adapter->newQuery($context); run_callbacks($schema->getListeners('listing'), [$query, $context]); run_callbacks($schema->getListeners('scope'), [$query, $context]);