|
9 | 9 | use Illuminate\Validation\ValidationException; |
10 | 10 | use Statamic\Contracts\Assets\Asset as AssetContract; |
11 | 11 | use Statamic\Facades; |
| 12 | +use Statamic\Facades\Asset; |
| 13 | +use Statamic\Facades\Blink; |
12 | 14 | use Statamic\Http\Controllers\API\ApiController; |
13 | 15 | use Statamic\Http\Controllers\CP\Assets\AssetsController as CpController; |
14 | 16 | use Tv2regionerne\StatamicPrivateApi\Http\Resources\AssetResource; |
@@ -62,20 +64,50 @@ public function store(Request $request, $container) |
62 | 64 | } |
63 | 65 |
|
64 | 66 | try { |
| 67 | + |
65 | 68 | $response = (new CpController($request))->store($request); |
| 69 | + $asset = $response->resource; |
| 70 | + $fields = $asset->blueprint()->fields()->addValues($request->all()); |
| 71 | + |
| 72 | + $fields->validate(); |
66 | 73 |
|
67 | | - if (! $id = $response->id()) { |
68 | | - abort(403); |
| 74 | + $values = $fields->process()->values()->merge([ |
| 75 | + 'focus' => $request->focus, |
| 76 | + ]); |
| 77 | + |
| 78 | + foreach ($values as $key => $value) { |
| 79 | + $asset->set($key, $value); |
69 | 80 | } |
70 | 81 |
|
71 | | - $asset = Facades\Asset::find($id); |
| 82 | + $asset->save(); |
| 83 | + Blink::forget("eloquent-asset-{$asset->id()}"); |
| 84 | + Blink::forget("asset-meta-{$asset->id()}"); |
| 85 | + $asset = Asset::findById($asset->id()); |
72 | 86 |
|
73 | 87 | return AssetResource::make($asset); |
| 88 | + |
74 | 89 | } catch (ValidationException $e) { |
75 | 90 | return $this->returnValidationErrors($e); |
76 | 91 | } |
77 | 92 | } |
78 | 93 |
|
| 94 | + public function update(Request $request, $container, $asset) |
| 95 | + { |
| 96 | + $request->merge([ |
| 97 | + 'container' => $container, |
| 98 | + ]); |
| 99 | + |
| 100 | + $response = (new CpController($request))->update($request, $asset); |
| 101 | + $assetId = $response['asset']['id']; |
| 102 | + |
| 103 | + Blink::forget("eloquent-asset-{$assetId}"); |
| 104 | + Blink::forget("asset-meta-{$assetId}"); |
| 105 | + |
| 106 | + $asset = Asset::findById($assetId); |
| 107 | + |
| 108 | + return AssetResource::make($asset); |
| 109 | + } |
| 110 | + |
79 | 111 | public function destroy(Request $request, $container, $id) |
80 | 112 | { |
81 | 113 | $container = $this->containerFromHandle($container); |
|
0 commit comments