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

feat(entries): improve Entries API to work with external APIs

This commit is contained in:
Awilum
2021-09-27 18:57:32 +03:00
parent 03053cf61a
commit c838ad6882

View File

@@ -191,25 +191,25 @@ class Entries
* @param string $id Unique identifier of the entry.
* @param array $options Options array.
*
* @return Arrays Returns instance of The Arrays class with items.
* @return mixed Returns mixed results from APIs or default is an instance of The Arrays class with founded items.
*
* @access public
*/
public function fetch(string $id, array $options = []): Arrays
public function fetch(string $id, array $options = [])
{
// Set initial data.
$this->registry()
->set('collection.options', $this->getCollectionOptions($id))
->set('fetch.id', $id)
->set('fetch.options', $options)
->set('fetch.result', []);
->set('fetch.result', null);
// Run event
emitter()->emit('onEntriesFetch');
// Check if `fetch.result` already contains data.
if (is_array($this->registry()->get('fetch.result')) && count($this->registry()->get('fetch.result')) > 0) {
return arrays($this->registry()->get('fetch.result'));
// Check if `fetch.result` contains data to return.
if (! is_null($this->registry()->get('fetch.result'))) {
return $this->registry()->get('fetch.result');
}
// Single fetch helper
@@ -220,14 +220,14 @@ class Entries
->set('collection.options', $this->getCollectionOptions($id))
->set('fetch.id', $id)
->set('fetch.options', $options)
->set('fetch.result', []);
->set('fetch.result', null);
// Run event
emitter()->emit('onEntriesFetchSingle');
// Check if `fetch.result` aleady contains data.
if (is_array($this->registry()->get('fetch.result')) && count($this->registry()->get('fetch.result')) > 0) {
return arrays($this->registry()->get('fetch.result'));
// Check if `fetch.result` contains data to return.
if (! is_null($this->registry()->get('fetch.result'))) {
return $this->registry()->get('fetch.result');
}
// Get Cache ID for current requested entry
@@ -300,14 +300,14 @@ class Entries
->set('collection.options', $this->getCollectionOptions($id))
->set('fetch.id', $id)
->set('fetch.options', $options)
->set('fetch.result', []);
->set('fetch.result', null);
// Run event
emitter()->emit('onEntriesFetchCollection');
// Check if `fetch.result` aleady contains data.
if (is_array($this->registry()->get('fetch.result')) && count($this->registry()->get('fetch.result')) > 0) {
return arrays($this->registry()->get('fetch.result'));
// Check if `fetch.result` contains data to return.
if (! is_null($this->registry()->get('fetch.result'))) {
return $this->registry()->get('fetch.result');
}
// Determine if collection exists
@@ -383,8 +383,11 @@ class Entries
$this->registry()->set('fetch.result', $data);
}
// Apply filter for fetch data
$this->registry()->set('fetch.result', filterCollection($this->registry()->get('fetch.result'), $this->registry()->has('fetch.options.filter') ? $this->registry()->get('fetch.options.filter') : []));
// Apply filter `filterCollection` for fetch result data.
$this->registry()->set('fetch.result',
filterCollection($this->registry()->get('fetch.result'),
$this->registry()->has('fetch.options.filter') ?
$this->registry()->get('fetch.options.filter') : []));
return arrays($this->registry()->get('fetch.result'));
@@ -457,7 +460,7 @@ class Entries
emitter()->emit('onEntriesMove');
// Return result from registy `move.result` if it's value boolean.
if (is_bool($this->registry()->get('move.result'))) {
if (! is_null($this->registry()->get('move.result')) && is_bool($this->registry()->get('move.result'))) {
return $this->registry()->get('move.result');
}
@@ -494,7 +497,7 @@ class Entries
emitter()->emit('onEntriesUpdate');
// Return result from registy `update.result` if it's value boolean.
if (is_bool($this->registry()->get('update.result'))) {
if (! is_null($this->registry()->get('update.result')) && is_bool($this->registry()->get('update.result'))) {
return $this->registry()->get('update.result');
}
@@ -533,7 +536,7 @@ class Entries
emitter()->emit('onEntriesCreate');
// Return result from registy `create.result` if it's value boolean.
if (is_bool($this->registry()->get('create.result'))) {
if (! is_null($this->registry()->get('create.result')) && is_bool($this->registry()->get('create.result'))) {
return $this->registry()->get('create.result');
}
@@ -577,7 +580,7 @@ class Entries
emitter()->emit('onEntriesDelete');
// Return result from registy `delete.result` if it's value boolean.
if (is_bool($this->registry()->get('delete.result'))) {
if (! is_null($this->registry()->get('delete.result')) && is_bool($this->registry()->get('delete.result'))) {
return $this->registry()->get('delete.result');
}
@@ -639,7 +642,7 @@ class Entries
emitter()->emit('onEntriesCopy');
// Return result from registy `move.result` if it's value boolean.
if (is_bool($this->registry()->get('copy.result'))) {
if (! is_null($this->registry()->get('copy.result')) && is_bool($this->registry()->get('copy.result'))) {
return $this->registry()->get('copy.result');
}
@@ -669,7 +672,7 @@ class Entries
emitter()->emit('onEntriesHas');
// Return result from registy `has.result` if it's value boolean.
if (is_bool($this->registry()->get('has.result'))) {
if (! is_null($this->registry()->get('has.result')) && is_bool($this->registry()->get('has.result'))) {
return $this->registry()->get('has.result');
}
@@ -696,8 +699,8 @@ class Entries
// Run event
emitter()->emit('onEntriesGetFileLocation');
// Return result from registy `getFileLocation.result` if it's value not empty string.
if (strings($this->registry()->get('getFileLocation.result'))->length() > 0) {
// Return result from registy `getFileLocation.result` if it's not null and it's a string.
if (! is_null($this->registry()->get('getFileLocation.result')) && is_string($this->registry()->get('getFileLocation.result'))) {
return $this->registry()->get('getFileLocation.result');
}
@@ -719,13 +722,13 @@ class Entries
$this->registry()
->set('collection.options', $this->getCollectionOptions($id))
->set('getDirectoryLocation.id', $id)
->set('getDirectoryLocation.result', '');
->set('getDirectoryLocation.result', null);
// Run event
emitter()->emit('onEntriesGetDirectoryLocation');
// Return result from registy `getDirectoryLocation.result` if it's not empty string.
if (strings($this->registry()->get('getDirectoryLocation.result'))->length() > 0) {
// Return result from registy `getDirectoryLocation.result` if it's not null and it's a string.
if (! is_null($this->registry()->get('getDirectoryLocation.result')) && is_string($this->registry()->get('getDirectoryLocation.result'))) {
return $this->registry()->get('getDirectoryLocation.result');
}
@@ -747,13 +750,13 @@ class Entries
$this->registry()
->set('collection.options', $this->getCollectionOptions($id))
->set('getCacheID.id', $id)
->set('getCacheID.result', '');
->set('getCacheID.result', null);
// Run event
emitter()->emit('onEntriesGetCacheID');
// Return result from registy `getCacheID.result` if it's not empty string.
if (strings($this->registry()->get('getCacheID.result'))->length() > 0) {
// Return result from registy `getCacheID.result` if it's not null and it's a string.
if (! is_null($this->registry()->get('getCacheID.result')) && is_string($this->registry()->get('getCacheID.result'))) {
return $this->registry()->get('getCacheID.result');
}