1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-08 14:16:46 +02:00

feat(media): standardise media container names for Media API #517

This commit is contained in:
Awilum
2020-12-18 11:44:05 +03:00
parent a0c22dd53c
commit 1cf1c560c0
12 changed files with 319 additions and 265 deletions

View File

@@ -45,7 +45,7 @@ flextype()->get('/api/images/{path:.+}', function (Request $request, Response $r
if (! isset($query['token'])) {
return $response->withStatus($api_errors['0400']['http_status_code'])
->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset'))
->write(flextype('json')->encode($api_errors['0400']));
->write(flextype('serializers')->json()->encode($api_errors['0400']));
}
// Set variables
@@ -57,18 +57,18 @@ flextype()->get('/api/images/{path:.+}', function (Request $request, Response $r
$delivery_images_token_file_path = PATH['project'] . '/tokens/images/' . $token . '/token.yaml';
// Set delivery token file
if ($delivery_images_token_file_data = flextype('yaml')->decode(filesystem()->file($delivery_images_token_file_path)->get())) {
if ($delivery_images_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($delivery_images_token_file_path)->get())) {
if (
$delivery_images_token_file_data['state'] === 'disabled' ||
($delivery_images_token_file_data['limit_calls'] !== 0 && $delivery_images_token_file_data['calls'] >= $delivery_images_token_file_data['limit_calls'])
) {
return $response->withStatus($api_errors['0003']['http_status_code'])
->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset'))
->write(flextype('json')->encode($api_errors['0003']));
->write(flextype('serializers')->json()->encode($api_errors['0003']));
}
// Update calls counter
filesystem()->file($delivery_images_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($delivery_images_token_file_data, ['calls' => $delivery_images_token_file_data['calls'] + 1])));
filesystem()->file($delivery_images_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($delivery_images_token_file_data, ['calls' => $delivery_images_token_file_data['calls'] + 1])));
if (filesystem()->file(PATH['project'] . '/media/' . $args['path'])->exists()) {
return flextype('images')->getImageResponse($args['path'], $_GET);
@@ -77,23 +77,23 @@ flextype()->get('/api/images/{path:.+}', function (Request $request, Response $r
return $response
->withStatus($api_errors['0402']['http_status_code'])
->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset'))
->write(flextype('json')->encode($api_errors['0402']));
->write(flextype('serializers')->json()->encode($api_errors['0402']));
}
return $response
->withStatus($api_errors['0003']['http_status_code'])
->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset'))
->write(flextype('json')->encode($api_errors['0003']));
->write(flextype('serializers')->json()->encode($api_errors['0003']));
}
return $response
->withStatus($api_errors['0003']['http_status_code'])
->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset'))
->write(flextype('json')->encode($api_errors['0003']));
->write(flextype('serializers')->json()->encode($api_errors['0003']));
}
return $response
->withStatus($api_errors['0003']['http_status_code'])
->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset'))
->write(flextype('json')->encode($api_errors['0003']));
->write(flextype('serializers')->json()->encode($api_errors['0003']));
});

File diff suppressed because it is too large Load Diff

View File

@@ -31,7 +31,7 @@ if (flextype('registry')->get('flextype.settings.entries.fields.media.files.fetc
if (isset($body['method']) &&
strpos($body['method'], 'fetch') !== false &&
is_callable([flextype('media.files'), $body['method']])) {
is_callable([flextype('media')->files(), $body['method']])) {
$fetchFromCallbackMethod = $body['method'];
} else {
$fetchFromCallbackMethod = 'fetch';
@@ -40,7 +40,7 @@ if (flextype('registry')->get('flextype.settings.entries.fields.media.files.fetc
$result = isset($body['result']) && in_array($body['result'], ['toArray', 'toObject']) ? $body['result'] : $resultTo;
$data[$field] = flextype('media.files')->{$fetchFromCallbackMethod}($body['id'],
$data[$field] = flextype('media')->files()->{$fetchFromCallbackMethod}($body['id'],
isset($body['options']) ?
$body['options'] :
[]);
@@ -80,7 +80,7 @@ if (flextype('registry')->get('flextype.settings.entries.fields.media.folders.fe
if (isset($body['method']) &&
strpos($body['method'], 'fetch') !== false &&
is_callable([flextype('media.folders'), $body['method']])) {
is_callable([flextype('media')->folders(), $body['method']])) {
$fetchFromCallbackMethod = $body['method'];
} else {
$fetchFromCallbackMethod = 'fetch';
@@ -89,7 +89,7 @@ if (flextype('registry')->get('flextype.settings.entries.fields.media.folders.fe
$result = isset($body['result']) && in_array($body['result'], ['toArray', 'toObject']) ? $body['result'] : $resultTo;
$data[$field] = flextype('media.folders')->{$fetchFromCallbackMethod}($body['id'],
$data[$field] = flextype('media')->folders()->{$fetchFromCallbackMethod}($body['id'],
isset($body['options']) ?
$body['options'] :
[]);

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
/**
* Flextype (https://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype\Foundation\Media;
use Atomastic\Macroable\Macroable;
use Flextype\Foundation\Media\MediaFiles;
use Flextype\Foundation\Media\MediaFolders;
class Media
{
use Macroable;
/**
* Create a Media Files instance.
*/
public function files(): MediaFiles
{
return new MediaFiles();
}
/**
* Create a Media Files instance.
*/
public function folders(): MediaFolders
{
return new MediaFolders();
}
}

View File

@@ -16,6 +16,7 @@ use Intervention\Image\ImageManagerStatic as Image;
use RuntimeException;
use Slim\Http\Environment;
use Slim\Http\Uri;
use Flextype\Foundation\Media\MediaFilesMeta;
use function arrays;
use function basename;
@@ -52,6 +53,14 @@ class MediaFiles
{
use Macroable;
/**
* Create a Media Files Meta instance.
*/
public function meta(): MediaFilesMeta
{
return new MediaFilesMeta();
}
/**
* Upload media file
*
@@ -192,7 +201,7 @@ class MediaFiles
filesystem()
->file($uploadMetadataFolder . basename($filename) . '.yaml')
->put(flextype('yaml')->encode($metadata));
->put(flextype('serializers')->yaml()->encode($metadata));
// Return new file path
return $filename;
@@ -224,12 +233,12 @@ class MediaFiles
strings($options['collection'])->isTrue()) {
$result = [];
foreach (filesystem()->find()->files()->in(flextype('media.folders.meta')->getDirectoryMetaLocation($id)) as $file) {
foreach (filesystem()->find()->files()->in(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id)) as $file) {
$basename = $file->getBasename('.' . $file->getExtension());
$result[$basename] = flextype('yaml')->decode(filesystem()->file($file->getPathname())->get());
$result[$basename]['filename'] = pathinfo(str_replace('/.meta', '', flextype('media.files.meta')->getFileMetaLocation($basename)))['filename'];
$result[$basename]['basename'] = explode('.', basename(flextype('media.files.meta')->getFileMetaLocation($basename)))[0];
$result[$basename] = flextype('serializers')->yaml()->decode(filesystem()->file($file->getPathname())->get());
$result[$basename]['filename'] = pathinfo(str_replace('/.meta', '', flextype('media')->files()->meta()->getFileMetaLocation($basename)))['filename'];
$result[$basename]['basename'] = explode('.', basename(flextype('media')->files()->meta()->getFileMetaLocation($basename)))[0];
$result[$basename]['extension'] = ltrim(strstr($basename, '.'), '.');
$result[$basename]['dirname'] = pathinfo(str_replace('/.meta', '', $file->getPathname()))['dirname'];
$result[$basename]['url'] = 'project/media/' . $id . '/' . $basename;
@@ -249,13 +258,13 @@ class MediaFiles
} else {
$result = [];
if (filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($id))->exists()) {
$result = flextype('yaml')->decode(filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($id))->get());
if (filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($id))->exists()) {
$result = flextype('serializers')->yaml()->decode(filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($id))->get());
$result['filename'] = pathinfo(str_replace('/.meta', '', flextype('media.files.meta')->getFileMetaLocation($id)))['filename'];
$result['basename'] = explode('.', basename(flextype('media.files.meta')->getFileMetaLocation($id)))[0];
$result['filename'] = pathinfo(str_replace('/.meta', '', flextype('media')->files()->meta()->getFileMetaLocation($id)))['filename'];
$result['basename'] = explode('.', basename(flextype('media')->files()->meta()->getFileMetaLocation($id)))[0];
$result['extension'] = ltrim(strstr($id, '.'), '.');
$result['dirname'] = pathinfo(str_replace('/.meta', '', flextype('media.files.meta')->getFileMetaLocation($id)))['dirname'];
$result['dirname'] = pathinfo(str_replace('/.meta', '', flextype('media')->files()->meta()->getFileMetaLocation($id)))['dirname'];
$result['url'] = 'project/media/' . $id;
@@ -286,9 +295,9 @@ class MediaFiles
*/
public function move(string $id, string $newID): bool
{
if (! filesystem()->file($this->getFileLocation($newID))->exists() && ! filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($newID))->exists()) {
if (! filesystem()->file($this->getFileLocation($newID))->exists() && ! filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($newID))->exists()) {
return filesystem()->file($this->getFileLocation($id))->move($this->getFileLocation($newID)) &&
filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($id))->move(flextype('media.files.meta')->getFileMetaLocation($newID));
filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($id))->move(flextype('media')->files()->meta()->getFileMetaLocation($newID));
}
return false;
@@ -306,7 +315,7 @@ class MediaFiles
public function delete(string $id): bool
{
return filesystem()->file($this->getFileLocation($id))->delete() &&
filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($id))->delete();
filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($id))->delete();
}
/**
@@ -321,7 +330,7 @@ class MediaFiles
public function has(string $id): bool
{
return filesystem()->file($this->getFileLocation($id))->exists() &&
filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($id))->exists();
filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($id))->exists();
}
/**
@@ -336,12 +345,12 @@ class MediaFiles
*/
public function copy(string $id, string $newID): bool
{
if (! filesystem()->file($this->getFileLocation($newID))->exists() && ! filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($newID))->exists()) {
if (! filesystem()->file($this->getFileLocation($newID))->exists() && ! filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($newID))->exists()) {
filesystem()->file($this->getFileLocation($id))->copy($this->getFileLocation($newID));
filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($id))->copy(flextype('media.files.meta')->getFileMetaLocation($newID));
filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($id))->copy(flextype('media')->files()->meta()->getFileMetaLocation($newID));
return filesystem()->file($this->getFileLocation($newID))->exists() &&
filesystem()->file(flextype('media.files.meta')->getFileMetaLocation($newID))->exists();
filesystem()->file(flextype('media')->files()->meta()->getFileMetaLocation($newID))->exists();
}
return false;

View File

@@ -32,12 +32,12 @@ class MediaFilesMeta
*/
public function update(string $id, string $field, string $value): bool
{
$fileData = flextype('yaml')->decode(filesystem()->file($this->getFileMetaLocation($id))->get());
$fileData = flextype('serializers')->yaml()->decode(filesystem()->file($this->getFileMetaLocation($id))->get());
if (arrays($fileData)->has($field)) {
$fileData = arrays($fileData)->set($field, $value);
return (bool) filesystem()->file($this->getFileMetaLocation($id))->put(flextype('yaml')->encode($fileData->toArray()));
return (bool) filesystem()->file($this->getFileMetaLocation($id))->put(flextype('serializers')->yaml()->encode($fileData->toArray()));
}
return false;
@@ -56,12 +56,12 @@ class MediaFilesMeta
*/
public function add(string $id, string $field, string $value): bool
{
$fileData = flextype('yaml')->decode(filesystem()->file($this->getFileMetaLocation($id))->get());
$fileData = flextype('serializers')->yaml()->decode(filesystem()->file($this->getFileMetaLocation($id))->get());
if (! arrays($fileData)->has($field)) {
$fileData = arrays($fileData)->set($field, $value);
return (bool) filesystem()->file($this->getFileMetaLocation($id))->put(flextype('yaml')->encode($fileData->toArray()));
return (bool) filesystem()->file($this->getFileMetaLocation($id))->put(flextype('serializers')->yaml()->encode($fileData->toArray()));
}
return false;
@@ -79,12 +79,12 @@ class MediaFilesMeta
*/
public function delete(string $id, string $field): bool
{
$fileData = flextype('yaml')->decode(filesystem()->file($this->getFileMetaLocation($id))->get());
$fileData = flextype('serializers')->yaml()->decode(filesystem()->file($this->getFileMetaLocation($id))->get());
if (arrays($fileData)->has($field)) {
$fileData = arrays($fileData)->delete($field);
return (bool) filesystem()->file($this->getFileMetaLocation($id))->put(flextype('yaml')->encode($fileData->toArray()));
return (bool) filesystem()->file($this->getFileMetaLocation($id))->put(flextype('serializers')->yaml()->encode($fileData->toArray()));
}
return false;

View File

@@ -13,6 +13,7 @@ use Atomastic\Arrays\Arrays;
use Atomastic\Macroable\Macroable;
use Slim\Http\Environment;
use Slim\Http\Uri;
use Flextype\Foundation\Media\MediaFoldersMeta;
use function arrays;
use function filesystem;
@@ -24,6 +25,14 @@ class MediaFolders
{
use Macroable;
/**
* Create a Media Folders Meta instance.
*/
public function meta(): MediaFoldersMeta
{
return new MediaFoldersMeta();
}
/**
* Fetch.
*
@@ -43,9 +52,9 @@ class MediaFolders
$single = function ($id, $options) {
$result = [];
if (filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($id))->exists()) {
if (filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->exists()) {
$result['path'] = $id;
$result['full_path'] = str_replace('/.meta', '', flextype('media.folders.meta')->getDirectoryMetaLocation($id));
$result['full_path'] = str_replace('/.meta', '', flextype('media')->folders()->meta()->getDirectoryMetaLocation($id));
$result['url'] = 'project/media/' . $id;
if (flextype('registry')->has('flextype.settings.url') && flextype('registry')->get('flextype.settings.url') !== '') {
@@ -66,7 +75,7 @@ class MediaFolders
strings($options['collection'])->isTrue()) {
$result = [];
foreach (filesystem()->find()->directories()->in(flextype('media.folders.meta')->getDirectoryMetaLocation($id)) as $folder) {
foreach (filesystem()->find()->directories()->in(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id)) as $folder) {
$result[$folder->getFilename()] = $single($id . '/' . $folder->getFilename(), [])->toArray();
}
@@ -91,10 +100,10 @@ class MediaFolders
{
if (
! filesystem()->directory($this->getDirectoryLocation($id))->exists() &&
! filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($id))->exists()
! filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->exists()
) {
return filesystem()->directory($this->getDirectoryLocation($id))->create(0755, true) &&
filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($id))->create(0755, true);
filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->create(0755, true);
}
return false;
@@ -114,10 +123,10 @@ class MediaFolders
{
if (
(filesystem()->directory($this->getDirectoryLocation($newID))->exists() === false &&
filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($newID))->exists() === false)
filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($newID))->exists() === false)
) {
return filesystem()->directory($this->getDirectoryLocation($id))->move($this->getDirectoryLocation($newID)) &&
filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($id))->move(flextype('media.folders.meta')->getDirectoryMetaLocation($newID));
filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->move(flextype('media')->folders()->meta()->getDirectoryMetaLocation($newID));
}
return false;
@@ -137,17 +146,17 @@ class MediaFolders
{
if (
(filesystem()->directory($this->getDirectoryLocation($newID))->exists() === false &&
filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($newID))->exists() === false)
filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($newID))->exists() === false)
) {
filesystem()
->directory($this->getDirectoryLocation($id))
->copy($this->getDirectoryLocation($newID));
filesystem()
->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($id))
->copy(flextype('media.folders.meta')->getDirectoryMetaLocation($newID));
->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))
->copy(flextype('media')->folders()->meta()->getDirectoryMetaLocation($newID));
return filesystem()->directory($this->getDirectoryLocation($newID))->exists() &&
filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($newID))->exists();
filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($newID))->exists();
}
return false;
@@ -165,7 +174,7 @@ class MediaFolders
public function delete(string $id): bool
{
return filesystem()->directory($this->getDirectoryLocation($id))->delete() &&
filesystem()->directory(flextype('media.folders.meta')->getDirectoryMetaLocation($id))->delete();
filesystem()->directory(flextype('media')->folders()->meta()->getDirectoryMetaLocation($id))->delete();
}
/**

View File

@@ -19,17 +19,17 @@ afterEach(function (): void {
test('test media.files field', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/bar.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/bar.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Bar', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/bar.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Bar', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
flextype('entries')->create('media', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/media/entry.md')->get()));
flextype('entries')->create('media', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/media/entry.md')->get()));
flextype('media.files')::macro('fetchExtraData', function ($id, $options) {
flextype('media')->files()::macro('fetchExtraData', function ($id, $options) {
return ['id' => $id, 'options' => $options];
});
flextype('media.folders')::macro('fetchExtraData', function ($id, $options) {
flextype('media')->folders()::macro('fetchExtraData', function ($id, $options) {
return ['id' => $id, 'options' => $options];
});

View File

@@ -14,31 +14,31 @@ afterEach(function (): void {
test('test update() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files.meta')->update('foo.txt', 'description', 'Foo description'));
$this->assertEquals('Foo description', flextype('yaml')->decode(filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->get())['description']);
$this->assertTrue(flextype('media')->files()->meta()->update('foo.txt', 'description', 'Foo description'));
$this->assertEquals('Foo description', flextype('serializers')->yaml()->decode(filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->get())['description']);
});
test('test add() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files.meta')->add('foo.txt', 'bar', 'Bar'));
$this->assertEquals('Bar', flextype('yaml')->decode(filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->get())['bar']);
$this->assertTrue(flextype('media')->files()->meta()->add('foo.txt', 'bar', 'Bar'));
$this->assertEquals('Bar', flextype('serializers')->yaml()->decode(filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->get())['bar']);
});
test('test delete() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files.meta')->delete('foo.txt', 'title'));
$this->assertTrue(empty(flextype('yaml')->decode(filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->get())['bar']));
$this->assertTrue(flextype('media')->files()->meta()->delete('foo.txt', 'title'));
$this->assertTrue(empty(flextype('serializers')->yaml()->decode(filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->get())['bar']));
});
test('test getFileMetaLocation() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertStringContainsString('foo.txt.yaml',
flextype('media.files.meta')->getFileMetaLocation('foo.txt'));
flextype('media')->files()->meta()->getFileMetaLocation('foo.txt'));
});

View File

@@ -14,55 +14,55 @@ afterEach(function (): void {
test('test fetch() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/bar.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/bar.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Bar', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/bar.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Bar', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(count(flextype('media.files')->fetch('foo.txt')) > 0);
$this->assertEquals('Foo', flextype('media.files')->fetch('foo.txt')['title']);
$this->assertTrue(count(flextype('media')->files()->fetch('foo.txt')) > 0);
$this->assertEquals('Foo', flextype('media')->files()->fetch('foo.txt')['title']);
$this->assertTrue(count(flextype('media.files')->fetch('/', ['collection' => true])) == 2);
$this->assertEquals('Foo', flextype('media.files')->fetch('/', ['collection' => true])['foo.txt']['title']);
$this->assertTrue(count(flextype('media')->files()->fetch('/', ['collection' => true])) == 2);
$this->assertEquals('Foo', flextype('media')->files()->fetch('/', ['collection' => true])['foo.txt']['title']);
});
test('test move() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files')->move('foo.txt', 'bar.txt'));
$this->assertTrue(flextype('media.files')->move('bar.txt', 'foo.txt'));
$this->assertFalse(flextype('media.files')->move('bar.txt', 'foo.txt'));
$this->assertTrue(flextype('media')->files()->move('foo.txt', 'bar.txt'));
$this->assertTrue(flextype('media')->files()->move('bar.txt', 'foo.txt'));
$this->assertFalse(flextype('media')->files()->move('bar.txt', 'foo.txt'));
});
test('test copy() method', function () {
$this->assertTrue(flextype('media.folders')->create('foo'));
$this->assertTrue(flextype('media.folders')->create('bar'));
$this->assertTrue(flextype('media')->folders()->create('foo'));
$this->assertTrue(flextype('media')->folders()->create('bar'));
filesystem()->file(PATH['project'] . '/media/foo/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files')->copy('foo/foo.txt', 'bar/foo.txt'));
$this->assertTrue(flextype('media.files')->copy('foo/foo.txt', 'bar/bar.txt'));
$this->assertFalse(flextype('media.files')->copy('foo/foo.txt', 'bar/foo.txt'));
$this->assertTrue(flextype('media')->files()->copy('foo/foo.txt', 'bar/foo.txt'));
$this->assertTrue(flextype('media')->files()->copy('foo/foo.txt', 'bar/bar.txt'));
$this->assertFalse(flextype('media')->files()->copy('foo/foo.txt', 'bar/foo.txt'));
});
test('test has() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files')->has('foo.txt'));
$this->assertFalse(flextype('media.files')->has('bar.txt'));
$this->assertTrue(flextype('media')->files()->has('foo.txt'));
$this->assertFalse(flextype('media')->files()->has('bar.txt'));
});
test('test getFileLocation() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertStringContainsString('foo.txt', flextype('media.files')->getFileLocation('foo.txt'));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertStringContainsString('foo.txt', flextype('media')->files()->getFileLocation('foo.txt'));
});
test('test delete() method', function () {
filesystem()->file(PATH['project'] . '/media/foo.txt')->put('foo');
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('yaml')->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media.files')->delete('foo.txt'));
$this->assertFalse(flextype('media.files')->delete('foo.txt'));
filesystem()->file(PATH['project'] . '/media/.meta/foo.txt.yaml')->put(flextype('serializers')->yaml()->encode(['title' => 'Foo', 'description' => '', 'type' => 'text/plain', 'filesize' => 3, 'uploaded_on' => 1603090370, 'exif' => []]));
$this->assertTrue(flextype('media')->files()->delete('foo.txt'));
$this->assertFalse(flextype('media')->files()->delete('foo.txt'));
});

View File

@@ -14,5 +14,5 @@ afterEach(function (): void {
test('test getDirectoryMetaLocation() method', function () {
$this->assertStringContainsString('/.meta/foo',
flextype('media.folders.meta')->getDirectoryMetaLocation('foo'));
flextype('media')->folders()->meta()->getDirectoryMetaLocation('foo'));
});

View File

@@ -14,34 +14,34 @@ afterEach(function (): void {
test('test fetch() method', function () {
$this->assertTrue(flextype('media.folders')->create('foo'));
$this->assertTrue(flextype('media.folders')->create('foo/bar'));
$this->assertTrue(flextype('media.folders')->create('foo/zed'));
$this->assertTrue(count(flextype('media.folders')->fetch('foo', ['collection' => true])) == 2);
$this->assertTrue(count(flextype('media.folders')->fetch('foo')) > 0);
$this->assertTrue(flextype('media')->folders()->create('foo'));
$this->assertTrue(flextype('media')->folders()->create('foo/bar'));
$this->assertTrue(flextype('media')->folders()->create('foo/zed'));
$this->assertTrue(count(flextype('media')->folders()->fetch('foo', ['collection' => true])) == 2);
$this->assertTrue(count(flextype('media')->folders()->fetch('foo')) > 0);
});
test('test create() method', function () {
$this->assertTrue(flextype('media.folders')->create('foo'));
$this->assertTrue(flextype('media')->folders()->create('foo'));
});
test('test move() method', function () {
$this->assertTrue(flextype('media.folders')->create('foo'));
$this->assertTrue(flextype('media.folders')->move('foo', 'bar'));
$this->assertTrue(flextype('media')->folders()->create('foo'));
$this->assertTrue(flextype('media')->folders()->move('foo', 'bar'));
});
test('test copy() method', function () {
$this->assertTrue(flextype('media.folders')->create('foo'));
$this->assertTrue(flextype('media.folders')->copy('foo', 'bar'));
$this->assertTrue(flextype('media')->folders()->create('foo'));
$this->assertTrue(flextype('media')->folders()->copy('foo', 'bar'));
});
test('test delete() method', function () {
$this->assertTrue(flextype('media.folders')->create('foo'));
$this->assertTrue(flextype('media.folders')->delete('foo'));
$this->assertFalse(flextype('media.folders')->delete('bar'));
$this->assertTrue(flextype('media')->folders()->create('foo'));
$this->assertTrue(flextype('media')->folders()->delete('foo'));
$this->assertFalse(flextype('media')->folders()->delete('bar'));
});
test('test getDirectoryLocation() method', function () {
$this->assertStringContainsString('/foo',
flextype('media.folders')->getDirectoryLocation('foo'));
flextype('media')->folders()->getDirectoryLocation('foo'));
});