From 43727e17964a78bbdc87b233d69ff6445586b5dd Mon Sep 17 00:00:00 2001 From: Awilum Date: Fri, 18 Dec 2020 22:35:32 +0300 Subject: [PATCH] feat(fields): Add new field `entries.fetch` for Entries API #492 --- src/flextype/Endpoints/entries.php | 2 +- src/flextype/Foundation/Entries/Fields/EntriesField.php | 9 ++++----- .../Entries/Fields/fixtures/entries/macroable/entry.md | 2 +- .../Entries/Fields/fixtures/entries/media/entry.md | 8 ++++---- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/flextype/Endpoints/entries.php b/src/flextype/Endpoints/entries.php index 9f639b71..b9812a39 100644 --- a/src/flextype/Endpoints/entries.php +++ b/src/flextype/Endpoints/entries.php @@ -55,7 +55,7 @@ flextype()->get('/api/entries', function (Request $request, Response $response) $id = $query['id']; $token = $query['token']; $options = $query['options'] ?? []; - $method = $query['method'] ?? ''; + $method = $query['options']['method'] ?? ''; if (flextype('registry')->get('flextype.settings.api.entries.enabled')) { // Validate entries token diff --git a/src/flextype/Foundation/Entries/Fields/EntriesField.php b/src/flextype/Foundation/Entries/Fields/EntriesField.php index 844bf218..2a05e0a4 100644 --- a/src/flextype/Foundation/Entries/Fields/EntriesField.php +++ b/src/flextype/Foundation/Entries/Fields/EntriesField.php @@ -29,15 +29,14 @@ if (flextype('registry')->get('flextype.settings.entries.fields.entries.fetch.en // Modify fetch. foreach (flextype('entries')->getStorage('fetch.data.entries.fetch') as $field => $body) { - if (isset($body['method']) && - strpos($body['method'], 'fetch') !== false && - is_callable([flextype('entries'), $body['method']])) { - $fetchFromCallbackMethod = $body['method']; + if (isset($body['options']['method']) && + strpos($body['options']['method'], 'fetch') !== false && + is_callable([flextype('entries'), $body['options']['method']])) { + $fetchFromCallbackMethod = $body['options']['method']; } else { $fetchFromCallbackMethod = 'fetch'; } - $result = isset($body['result']) && in_array($body['result'], ['toArray', 'toObject']) ? $body['result'] : $resultTo; $data[$field] = flextype('entries')->{$fetchFromCallbackMethod}($body['id'], diff --git a/tests/Foundation/Entries/Fields/fixtures/entries/macroable/entry.md b/tests/Foundation/Entries/Fields/fixtures/entries/macroable/entry.md index e9e3bc76..6bfd9449 100644 --- a/tests/Foundation/Entries/Fields/fixtures/entries/macroable/entry.md +++ b/tests/Foundation/Entries/Fields/fixtures/entries/macroable/entry.md @@ -3,8 +3,8 @@ title: Macroable entries: fetch: table: - method: fetchExtraData id: table options: + method: fetchExtraData hello: world --- diff --git a/tests/Foundation/Entries/Fields/fixtures/entries/media/entry.md b/tests/Foundation/Entries/Fields/fixtures/entries/media/entry.md index 3295914b..c4748411 100644 --- a/tests/Foundation/Entries/Fields/fixtures/entries/media/entry.md +++ b/tests/Foundation/Entries/Fields/fixtures/entries/media/entry.md @@ -5,8 +5,8 @@ media: fetch: macroable_folder: id: 'foo' - method: fetchExtraData - options: [] + options: + method: fetchExtraData foo_folder: id: 'foo' collection_of_folders: @@ -17,8 +17,8 @@ media: fetch: macroable_file: id: 'foo' - method: fetchExtraData - options: [] + options: + method: fetchExtraData foo_file: id: foo.txt collection_of_files: