Trigger an event when a file was updated

parent 510e0d29
<?php
namespace Modules\Media\Events;
use Modules\Media\Entities\File;
class FileWasUpdated
{
/**
* @var File
*/
public $file;
public function __construct(File $file)
{
$this->file = $file;
}
}
...@@ -7,6 +7,7 @@ use Modules\Core\Repositories\Eloquent\EloquentBaseRepository; ...@@ -7,6 +7,7 @@ use Modules\Core\Repositories\Eloquent\EloquentBaseRepository;
use Modules\Media\Entities\File; use Modules\Media\Entities\File;
use Modules\Media\Events\FileIsCreating; use Modules\Media\Events\FileIsCreating;
use Modules\Media\Events\FileWasCreated; use Modules\Media\Events\FileWasCreated;
use Modules\Media\Events\FileWasUpdated;
use Modules\Media\Helpers\FileHelper; use Modules\Media\Helpers\FileHelper;
use Modules\Media\Repositories\FileRepository; use Modules\Media\Repositories\FileRepository;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
...@@ -25,6 +26,8 @@ class EloquentFileRepository extends EloquentBaseRepository implements FileRepos ...@@ -25,6 +26,8 @@ class EloquentFileRepository extends EloquentBaseRepository implements FileRepos
$file->setTags(array_get($data, 'tags', [])); $file->setTags(array_get($data, 'tags', []));
event(new FileWasUpdated($file));
return $file; return $file;
} }
......
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
namespace Modules\Media\Tests; namespace Modules\Media\Tests;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Storage;
use Mockery; use Mockery;
use Modules\Media\Entities\File; use Modules\Media\Entities\File;
use Modules\Media\Events\FileIsCreating; use Modules\Media\Events\FileIsCreating;
use Modules\Media\Events\FileWasCreated; use Modules\Media\Events\FileWasCreated;
use Modules\Media\Events\FileWasUpdated;
use Modules\Media\Repositories\FileRepository; use Modules\Media\Repositories\FileRepository;
use Symfony\Component\Finder\SplFileInfo; use Symfony\Component\Finder\SplFileInfo;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
...@@ -153,6 +153,19 @@ class FileRepositoryTest extends MediaTestCase ...@@ -153,6 +153,19 @@ class FileRepositoryTest extends MediaTestCase
$this->assertEquals('imabettername.jpg', $file->filename); $this->assertEquals('imabettername.jpg', $file->filename);
} }
/** @test */
public function it_triggers_event_when_file_was_updated()
{
Event::fake();
$file = $this->file->createFromFile(\Illuminate\Http\UploadedFile::fake()->image('myfile.jpg'));
$this->file->update($file, []);
Event::assertDispatched(FileWasUpdated::class, function ($e) use ($file) {
return $e->file->id === $file->id;
});
}
private function createFile($fileName = 'random/name.jpg') private function createFile($fileName = 'random/name.jpg')
{ {
return File::create([ return File::create([
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment