66use Illuminate \Support \Facades \Cache ;
77use Statamic \Assets \Asset as FileAsset ;
88use Statamic \Assets \AssetUploader as Uploader ;
9+ use Statamic \Contracts \Assets \Asset as AssetContract ;
910use Statamic \Facades \Blink ;
1011use Statamic \Facades \Path ;
1112use Statamic \Support \Arr ;
@@ -115,15 +116,26 @@ public function writeMeta($meta)
115116 {
116117 $ meta ['data ' ] = Arr::removeNullValues ($ meta ['data ' ]);
117118
119+ self ::makeModelFromContract ($ this , $ meta );
120+
121+ Blink::put ('eloquent-asset-meta-exists- ' .$ this ->id (), true );
122+ }
123+
124+ public static function makeModelFromContract (AssetContract $ source , $ meta = [])
125+ {
126+ if (! $ meta ) {
127+ $ meta = $ source ->meta ();
128+ }
129+
118130 $ model = app ('statamic.eloquent.assets.model ' )::firstOrNew ([
119- 'container ' => $ this ->containerHandle (),
120- 'folder ' => $ this ->folder (),
121- 'basename ' => $ this ->basename (),
131+ 'container ' => $ source ->containerHandle (),
132+ 'folder ' => $ source ->folder (),
133+ 'basename ' => $ source ->basename (),
122134 ])->fill ([
123135 'meta ' => $ meta ,
124- 'filename ' => $ this ->filename (),
125- 'extension ' => $ this ->extension (),
126- 'path ' => $ this ->path (),
136+ 'filename ' => $ source ->filename (),
137+ 'extension ' => $ source ->extension (),
138+ 'path ' => $ source ->path (),
127139 ]);
128140
129141 // Set initial timestamps.
@@ -134,7 +146,7 @@ public function writeMeta($meta)
134146
135147 $ model ->save ();
136148
137- Blink:: put ( ' eloquent-asset-meta-exists- ' . $ this -> id (), true ) ;
149+ return $ model ;
138150 }
139151
140152 public function metaPath ()
0 commit comments