From fe3b00ad8045eca7e63b5dd036f12e0a9794078d Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 9 Aug 2023 14:38:22 +0200 Subject: [PATCH 1/3] API Globals return resolved relations --- src/Http/Resources/API/GlobalSetResource.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Http/Resources/API/GlobalSetResource.php b/src/Http/Resources/API/GlobalSetResource.php index 2e87a9000bb..5a90f2103c0 100644 --- a/src/Http/Resources/API/GlobalSetResource.php +++ b/src/Http/Resources/API/GlobalSetResource.php @@ -15,12 +15,17 @@ class GlobalSetResource extends JsonResource */ public function toArray($request) { + $with = $this->resource->blueprint() + ->fields()->all() + ->filter->isRelationship()->keys()->all(); + return $this->resource ->toAugmentedCollection() ->merge([ 'handle' => $this->resource->handle(), 'api_url' => Statamic::apiRoute('globals.show', [$this->resource->handle()]), ]) + ->withRelations($with) ->withShallowNesting() ->toArray(); } From 5fb54bc2a4630a5f6a05ee43065134e722e3a380 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Wed, 9 Aug 2023 15:59:35 -0400 Subject: [PATCH 2/3] make the fix opt in --- src/Http/Resources/API/GlobalSetResource.php | 26 ++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/Http/Resources/API/GlobalSetResource.php b/src/Http/Resources/API/GlobalSetResource.php index 5a90f2103c0..440d177d8c2 100644 --- a/src/Http/Resources/API/GlobalSetResource.php +++ b/src/Http/Resources/API/GlobalSetResource.php @@ -7,6 +7,8 @@ class GlobalSetResource extends JsonResource { + private static $relations = false; + /** * Transform the resource into an array. * @@ -15,18 +17,28 @@ class GlobalSetResource extends JsonResource */ public function toArray($request) { - $with = $this->resource->blueprint() - ->fields()->all() - ->filter->isRelationship()->keys()->all(); - - return $this->resource + $collection = $this->resource ->toAugmentedCollection() ->merge([ 'handle' => $this->resource->handle(), 'api_url' => Statamic::apiRoute('globals.show', [$this->resource->handle()]), - ]) - ->withRelations($with) + ]); + + if (static::$relations) { + $with = $this->resource->blueprint() + ->fields()->all() + ->filter->isRelationship()->keys()->all(); + + $collection->withRelations($with); + } + + return $collection ->withShallowNesting() ->toArray(); } + + public static function withRelations() + { + static::$relations = true; + } } From c701e424b3f99050a486eeeeef5b3bff0eaa3c3b Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Wed, 9 Aug 2023 16:00:35 -0400 Subject: [PATCH 3/3] mark deprecated --- src/Http/Resources/API/GlobalSetResource.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Http/Resources/API/GlobalSetResource.php b/src/Http/Resources/API/GlobalSetResource.php index 440d177d8c2..2858bcca695 100644 --- a/src/Http/Resources/API/GlobalSetResource.php +++ b/src/Http/Resources/API/GlobalSetResource.php @@ -7,6 +7,7 @@ class GlobalSetResource extends JsonResource { + /** @deprecated */ private static $relations = false; /** @@ -37,6 +38,7 @@ public function toArray($request) ->toArray(); } + /** @deprecated */ public static function withRelations() { static::$relations = true;