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;
use Modules\Media\Entities\File;
use Modules\Media\Events\FileIsCreating;
use Modules\Media\Events\FileWasCreated;
use Modules\Media\Events\FileWasUpdated;
use Modules\Media\Helpers\FileHelper;
use Modules\Media\Repositories\FileRepository;
use Symfony\Component\HttpFoundation\File\UploadedFile;
......@@ -25,6 +26,8 @@ class EloquentFileRepository extends EloquentBaseRepository implements FileRepos
$file->setTags(array_get($data, 'tags', []));
event(new FileWasUpdated($file));
return $file;
}
......
......@@ -3,11 +3,11 @@
namespace Modules\Media\Tests;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Storage;
use Mockery;
use Modules\Media\Entities\File;
use Modules\Media\Events\FileIsCreating;
use Modules\Media\Events\FileWasCreated;
use Modules\Media\Events\FileWasUpdated;
use Modules\Media\Repositories\FileRepository;
use Symfony\Component\Finder\SplFileInfo;
use Symfony\Component\HttpFoundation\File\UploadedFile;
......@@ -153,6 +153,19 @@ class FileRepositoryTest extends MediaTestCase
$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')
{
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