Skip to content

Commit 000967f

Browse files
committed
Update asset & term references in models
1 parent 01f871a commit 000967f

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

src/ServiceProvider.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Illuminate\Support\Facades\Gate;
1010
use Illuminate\Support\Facades\Log;
1111
use Illuminate\Support\Facades\Route;
12+
use Illuminate\Support\LazyCollection;
1213
use Illuminate\Support\Str;
1314
use Spatie\ErrorSolutions\Contracts\SolutionProviderRepository;
1415
use Statamic\API\Middleware\Cache;
@@ -20,6 +21,8 @@
2021
use Statamic\Facades\Permission;
2122
use Statamic\Facades\Search;
2223
use Statamic\Http\Middleware\RequireStatamicPro;
24+
use Statamic\Listeners\UpdateAssetReferences;
25+
use Statamic\Listeners\UpdateTermReferences;
2326
use Statamic\Providers\AddonServiceProvider;
2427
use Statamic\Statamic;
2528
use StatamicRadPack\Runway\GraphQL\NestedFieldsType;
@@ -69,6 +72,7 @@ public function boot()
6972
->registerNavigation()
7073
->registerBlueprints()
7174
->registerSearchProvider()
75+
->registerReferenceUpdaterHook()
7276
->bootGraphQl()
7377
->bootApi()
7478
->bootModelEventListeners()
@@ -245,6 +249,20 @@ protected function registerSearchProvider(): self
245249
return $this;
246250
}
247251

252+
protected function registerReferenceUpdaterHook(): self
253+
{
254+
$referenceUpdaterHook = function ($payload, $next) {
255+
return LazyCollection::make(Runway::allResources())->flatMap(function (Resource $resource) {
256+
return $resource->newEloquentQuery()->lazy();
257+
});
258+
};
259+
260+
UpdateTermReferences::hook('additional', $referenceUpdaterHook);
261+
UpdateAssetReferences::hook('additional', $referenceUpdaterHook);
262+
263+
return $this;
264+
}
265+
248266
protected function bootModelEventListeners(): self
249267
{
250268
Runway::allResources()

src/Traits/HasRunwayResource.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Statamic\Contracts\Data\Augmented;
88
use Statamic\Contracts\Revisions\Revision;
99
use Statamic\Data\ContainsSupplementalData;
10+
use Statamic\Fields\Blueprint;
1011
use Statamic\Fields\Field;
1112
use Statamic\Fields\Value;
1213
use Statamic\Fieldtypes\Section;
@@ -45,6 +46,11 @@ public function runwayResource(): Resource
4546
return Runway::findResourceByModel($this);
4647
}
4748

49+
public function blueprint(): Blueprint
50+
{
51+
return $this->runwayResource()->blueprint();
52+
}
53+
4854
public function reference(): string
4955
{
5056
return "runway::{$this->runwayResource()->handle()}::{$this->getKey()}";
@@ -349,4 +355,17 @@ public function updateLastModified($user = false): self
349355
{
350356
return $this;
351357
}
358+
359+
public function data($data = null)
360+
{
361+
if (func_num_args() === 0) {
362+
return collect($this->attributes);
363+
}
364+
365+
foreach ($data as $key => $value) {
366+
$this->attributes[$key] = $value;
367+
}
368+
369+
return $this;
370+
}
352371
}

0 commit comments

Comments
 (0)