ldc-dam/app/Http/Resources/Api/MediaPictureResource.php
2022-07-29 13:12:34 +02:00

51 lines
1.3 KiB
PHP

<?php
namespace App\Http\Resources\Api;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage;
class MediaPictureResource extends JsonResource
{
/** @var array */
private static $skeleton = [
'base64_bin' => '',
'uid' => '',
'extension' => ''
];
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
* + base64_bin string
* + uid string
* + extension string
*/
//phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass, Squiz.Commenting.FunctionComment.Missing
public function toArray($request)
{
/** @var \Illuminate\Filesystem\FilesystemAdapter */
$storage = Storage::disk('media');
return array_intersect_key(
array_merge([
'base64_bin' => \base64_encode((string)$storage->get($this->relative_path)),
'uid' => $this->uid,
'extension' => $this->extension->value
]),
$this->getSkeleton()
);
}
/**
* Returns the resource skeletton
*
* @return array
*/
public static function getSkeleton(): array
{
return self::$skeleton;
}
}