Compare commits

..

3 Commits

Author SHA1 Message Date
Philipp Lang 0c10472e2e Add mime types 2023-03-08 15:50:40 +01:00
Philipp Lang d429b8959b mod mediaController 2023-03-08 15:42:34 +01:00
Philipp Lang 00592aca0e mod middleware 2023-03-08 14:53:00 +01:00
6 changed files with 14 additions and 6 deletions

View File

@ -45,10 +45,12 @@ class MediaController
$medias = collect($content)->map(function ($c) use ($collection, $model) { $medias = collect($content)->map(function ($c) use ($collection, $model) {
$pathinfo = pathinfo($c['name']); $pathinfo = pathinfo($c['name']);
$path = $collection->runCallback('forceFileName', $model, $pathinfo['filename']).'.'.$pathinfo['extension']; $basename = $collection->runCallback('forceFileName', $model, $pathinfo['filename']);
Storage::disk('public')->put($path, base64_decode($c['content'])); $path = $basename.'.'.$pathinfo['extension'];
$adder = $model $adder = $model
->addMedia(Storage::disk('public')->path($path)) ->addMediaFromBase64($c['content'])
->usingName($basename)
->usingFileName($path)
->withCustomProperties($collection->runCallback('withDefaultProperties', $path)); ->withCustomProperties($collection->runCallback('withDefaultProperties', $path));
return tap( return tap(

View File

@ -27,6 +27,8 @@ class MediaData extends Data
public string $fileName; public string $fileName;
public string $mimeType;
#[MapInputName('custom_properties')] #[MapInputName('custom_properties')]
public array $properties; public array $properties;
@ -63,6 +65,7 @@ class MediaData extends Data
'file_name' => pathinfo($default[0], PATHINFO_BASENAME), 'file_name' => pathinfo($default[0], PATHINFO_BASENAME),
'properties' => [], 'properties' => [],
'fallback' => true, 'fallback' => true,
'mime_type' => Storage::disk($default[1])->mimeType($default[0]),
]); ]);
} }
} }

View File

@ -31,7 +31,7 @@ class ServiceProvider extends BaseServiceProvider
protected function routeGroup(): array protected function routeGroup(): array
{ {
return [ return [
'middleware' => config('medialibrary-helper.middleware'), 'middleware' => config('media-library.middleware'),
]; ];
} }
} }

View File

@ -29,6 +29,7 @@ test('it gets media for single', function () {
$response->assertJsonPath('id', $media->id); $response->assertJsonPath('id', $media->id);
$response->assertJsonPath('properties.test', 'old'); $response->assertJsonPath('properties.test', 'old');
$response->assertJsonPath('fallback', false); $response->assertJsonPath('fallback', false);
$response->assertJsonPath('mime_type', 'application/pdf');
}); });
test('it checks for authorization', function () { test('it checks for authorization', function () {
@ -64,6 +65,7 @@ test('test it gets conversions for single media', function () {
test('test it gets default single media', function () { test('test it gets default single media', function () {
$this->auth()->registerModel(); $this->auth()->registerModel();
$post = $this->newPost(); $post = $this->newPost();
Storage::disk('public')->put('default.jpg', $this->jpgFile()->getContent());
$response = $this->getJson("/mediaupload/post/{$post->id}/conversionsWithDefault"); $response = $this->getJson("/mediaupload/post/{$post->id}/conversionsWithDefault");
@ -73,4 +75,5 @@ test('test it gets default single media', function () {
$response->assertJsonPath('name', 'default'); $response->assertJsonPath('name', 'default');
$response->assertJsonPath('file_name', 'default.jpg'); $response->assertJsonPath('file_name', 'default.jpg');
$response->assertJsonPath('fallback', true); $response->assertJsonPath('fallback', true);
$response->assertJsonPath('mime_type', 'image/jpeg');
}); });

View File

@ -39,6 +39,6 @@ class MiddlewareTest extends TestCase
protected function defineEnvironment($app) protected function defineEnvironment($app)
{ {
$app['config']->set('medialibrary-helper.middleware', ['web', 'auth:web']); $app['config']->set('media-library.middleware', ['web', 'auth:web']);
} }
} }

View File

@ -82,6 +82,6 @@ class TestCase extends BaseTestCase
protected function defineEnvironment($app) protected function defineEnvironment($app)
{ {
$app['config']->set('medialibrary-helper.middleware', ['web']); $app['config']->set('media-library.middleware', ['web']);
} }
} }