Skip to content

Commit

Permalink
Merge pull request #152 from dystcz/feature/fix-media-resource
Browse files Browse the repository at this point in the history
Do not filter media attributes if there is no default conversion in q…
  • Loading branch information
repl6669 authored May 15, 2024
2 parents 3e136d2 + be17abb commit 1c3c61d
Showing 1 changed file with 4 additions and 23 deletions.
27 changes: 4 additions & 23 deletions src/Domain/Media/JsonApi/V1/MediaResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Config;
use LaravelJsonApi\Contracts\Schema\Attribute;
use Spatie\MediaLibrary\MediaCollections\Models\Media;

class MediaResource extends JsonApiResource
Expand Down Expand Up @@ -41,9 +40,9 @@ protected function allAttributes($request): iterable
/** @var Media $model */
$model = $this->resource;

$conversionsInParams = array_filter(
$conversions = array_filter(
explode(',', $request->get('media_conversions', '')),
fn ($conversion) => $model->hasGeneratedConversion($conversion) || in_array($conversion, ['default']),
fn ($conversion) => $model->hasGeneratedConversion($conversion),
);

/** @var array<int, MediaConversionContract> $registeredConversions */
Expand All @@ -59,34 +58,16 @@ protected function allAttributes($request): iterable
fn (ConversionOptions $options) => $options->key,
array_filter(
$conversionOptions,
fn (ConversionOptions $options) => in_array($options->key, $conversionsInParams),
fn (ConversionOptions $options) => in_array($options->key, $conversions),
),
)));

if (empty($conversions) || empty($registeredConversions)) {
return parent::allAttributes($request);
}

$allAttributes = array_filter(
parent::allAttributes($request),
function (Attribute $value, mixed $key) use ($conversionsInParams) {

if (! in_array('default', $conversionsInParams)) {
return ! in_array($key, [
'path',
'url',
'srcset',
'file_name',
'mime_type',
]);
}

return true;

}, ARRAY_FILTER_USE_BOTH);

return [
...$allAttributes,
...parent::allAttributes($request),
...$this->conversions($conversions),
];
}
Expand Down

0 comments on commit 1c3c61d

Please sign in to comment.