diff --git a/src/flextype/Foundation/Media/MediaFolders.php b/src/flextype/Foundation/Media/MediaFolders.php index 0ee0bed5..22c8e698 100644 --- a/src/flextype/Foundation/Media/MediaFolders.php +++ b/src/flextype/Foundation/Media/MediaFolders.php @@ -165,7 +165,7 @@ class MediaFolders } /** - * Delete dir + * Delete folder * * @param string $id Unique identifier of the file. * @@ -179,6 +179,21 @@ class MediaFolders filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->delete(); } + /** + * Check whether a folder exists. + * + * @param string $id Unique identifier of the folder. + * + * @return bool True on success, false on failure. + * + * @access public + */ + public function has(string $id): bool + { + return filesystem()->directory($this->getDirectoryLocation($id))->exists() && + filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->exists(); + } + /** * Get files directory location * diff --git a/tests/Foundation/Media/MediaFoldersTest.php b/tests/Foundation/Media/MediaFoldersTest.php index 162f1d85..c05cb38d 100644 --- a/tests/Foundation/Media/MediaFoldersTest.php +++ b/tests/Foundation/Media/MediaFoldersTest.php @@ -35,6 +35,13 @@ test('test copy() method', function () { $this->assertTrue(flextype('media')->folders()->copy('foo', 'bar')); }); + +test('test has() method', function () { + $this->assertTrue(flextype('media')->folders()->create('foo')); + $this->assertTrue(flextype('media')->folders()->has('foo')); + $this->assertFalse(flextype('media')->folders()->has('bar')); +}); + test('test delete() method', function () { $this->assertTrue(flextype('media')->folders()->create('foo')); $this->assertTrue(flextype('media')->folders()->delete('foo'));