From 9031ea3fa51405eae2e5ee9b837009cbaa8c95cd Mon Sep 17 00:00:00 2001 From: Awilum Date: Fri, 18 Dec 2020 13:15:10 +0300 Subject: [PATCH] feat(serializers): standardise serializers container names with macroable ability for Serializers API #518 --- src/flextype/Endpoints/entries.php | 128 +++++++++--------- src/flextype/Endpoints/registry.php | 16 +-- src/flextype/Foundation/Entries/Entries.php | 8 +- src/flextype/Foundation/Plugins.php | 10 +- .../Support/Serializers/Frontmatter.php | 6 +- .../Support/Serializers/Serializers.php | 45 ++++++ .../Entries/Fields/EntriesFieldTest.php | 32 ++--- .../Entries/Fields/RegistryFieldTest.php | 6 +- tests/Support/Serializers/FrontmatterTest.php | 6 +- tests/Support/Serializers/JsonTest.php | 6 +- tests/Support/Serializers/YamlTest.php | 6 +- 11 files changed, 157 insertions(+), 112 deletions(-) create mode 100644 src/flextype/Support/Serializers/Serializers.php diff --git a/src/flextype/Endpoints/entries.php b/src/flextype/Endpoints/entries.php index 0e35ac36..9f639b71 100644 --- a/src/flextype/Endpoints/entries.php +++ b/src/flextype/Endpoints/entries.php @@ -48,7 +48,7 @@ flextype()->get('/api/entries', function (Request $request, Response $response) return $response ->withStatus($api_errors['0100']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0100'])); + ->write(flextype('serializers')->json()->encode($api_errors['0100'])); } // Set variables @@ -63,7 +63,7 @@ flextype()->get('/api/entries', function (Request $request, Response $response) $entries_token_file_path = PATH['project'] . '/tokens/entries/' . $token . '/token.yaml'; // Set entries token file - if ($entries_token_file_data = flextype('yaml')->decode(filesystem()->file($entries_token_file_path)->get())) { + if ($entries_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($entries_token_file_path)->get())) { if ( $entries_token_file_data['state'] === 'disabled' || ($entries_token_file_data['limit_calls'] !== 0 && $entries_token_file_data['calls'] >= $entries_token_file_data['limit_calls']) @@ -71,7 +71,7 @@ flextype()->get('/api/entries', function (Request $request, Response $response) 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'])); } // override entries.fetch.result @@ -93,38 +93,38 @@ flextype()->get('/api/entries', function (Request $request, Response $response) $response_code = count($response_data['data']) > 0 ? 200 : 404; // Update calls counter - filesystem()->file($entries_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); + filesystem()->file($entries_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0102']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0102'])); + ->write(flextype('serializers')->json()->encode($api_errors['0102'])); } return $response ->withStatus($response_code) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($response_data)); + ->write(flextype('serializers')->json()->encode($response_data)); } 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'])); }); /** @@ -149,7 +149,7 @@ flextype()->post('/api/entries', function (Request $request, Response $response) return $response ->withStatus($api_errors['0101']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0101']['http_status_code'])); + ->write(flextype('serializers')->json()->encode($api_errors['0101']['http_status_code'])); } // Set variables @@ -166,8 +166,8 @@ flextype()->post('/api/entries', function (Request $request, Response $response) // Set entries and access token file if ( - ($entries_token_file_data = flextype('yaml')->decode(filesystem()->file($entries_token_file_path)->get())) && - ($access_token_file_data = flextype('yaml')->decode(filesystem()->file($access_token_file_path)->get())) + ($entries_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($entries_token_file_path)->get())) && + ($access_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($access_token_file_path)->get())) ) { if ( $entries_token_file_data['state'] === 'disabled' || @@ -176,7 +176,7 @@ flextype()->post('/api/entries', function (Request $request, Response $response) 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'])); } if ( @@ -186,7 +186,7 @@ flextype()->post('/api/entries', function (Request $request, Response $response) 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'])); } // Create entry @@ -202,39 +202,39 @@ flextype()->post('/api/entries', function (Request $request, Response $response) $response_code = $create_entry ? 200 : 404; // Update calls counter - filesystem()->file($entries_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); + filesystem()->file($entries_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0102']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0102'])); + ->write(flextype('serializers')->json()->encode($api_errors['0102'])); } // Return response return $response ->withStatus($response_code) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($response_data)); + ->write(flextype('serializers')->json()->encode($response_data)); } 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'])); }); /** @@ -259,7 +259,7 @@ flextype()->patch('/api/entries', function (Request $request, Response $response return $response ->withStatus($api_errors['0101']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0101']['http_status_code'])); + ->write(flextype('serializers')->json()->encode($api_errors['0101']['http_status_code'])); } // Set variables @@ -276,8 +276,8 @@ flextype()->patch('/api/entries', function (Request $request, Response $response // Set entries and access token file if ( - ($entries_token_file_data = flextype('yaml')->decode(filesystem()->file($entries_token_file_path)->get())) && - ($access_token_file_data = flextype('yaml')->decode(filesystem()->file($access_token_file_path)->get())) + ($entries_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($entries_token_file_path)->get())) && + ($access_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($access_token_file_path)->get())) ) { if ( $entries_token_file_data['state'] === 'disabled' || @@ -286,7 +286,7 @@ flextype()->patch('/api/entries', function (Request $request, Response $response 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'])); } if ( @@ -296,7 +296,7 @@ flextype()->patch('/api/entries', function (Request $request, Response $response 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 entry @@ -312,39 +312,39 @@ flextype()->patch('/api/entries', function (Request $request, Response $response $response_code = $update_entry ? 200 : 404; // Update calls counter - filesystem()->file($entries_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); + filesystem()->file($entries_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0102']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0102'])); + ->write(flextype('serializers')->json()->encode($api_errors['0102'])); } // Return response return $response ->withStatus($response_code) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($response_data)); + ->write(flextype('serializers')->json()->encode($response_data)); } 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'])); }); /** @@ -369,7 +369,7 @@ flextype()->put('/api/entries', function (Request $request, Response $response) return $response ->withStatus($api_errors['0101']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0101']['http_status_code'])); + ->write(flextype('serializers')->json()->encode($api_errors['0101']['http_status_code'])); } // Set variables @@ -386,8 +386,8 @@ flextype()->put('/api/entries', function (Request $request, Response $response) // Set entries and access token file if ( - ($entries_token_file_data = flextype('yaml')->decode(filesystem()->file($entries_token_file_path)->get())) && - ($access_token_file_data = flextype('yaml')->decode(filesystem()->file($access_token_file_path)->get())) + ($entries_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($entries_token_file_path)->get())) && + ($access_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($access_token_file_path)->get())) ) { if ( $entries_token_file_data['state'] === 'disabled' || @@ -396,7 +396,7 @@ flextype()->put('/api/entries', function (Request $request, Response $response) 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'])); } if ( @@ -406,7 +406,7 @@ flextype()->put('/api/entries', function (Request $request, Response $response) 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'])); } // Move entry @@ -423,39 +423,39 @@ flextype()->put('/api/entries', function (Request $request, Response $response) $response_code = $move_entry ? 200 : 404; // Update calls counter - filesystem()->file($entries_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); + filesystem()->file($entries_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0102']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0102'])); + ->write(flextype('serializers')->json()->encode($api_errors['0102'])); } // Return response return $response ->withStatus($response_code) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($response_data)); + ->write(flextype('serializers')->json()->encode($response_data)); } 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'])); }); /** @@ -480,7 +480,7 @@ flextype()->put('/api/entries/copy', function (Request $request, Response $respo return $response ->withStatus($api_errors['0101']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0101']['http_status_code'])); + ->write(flextype('serializers')->json()->encode($api_errors['0101']['http_status_code'])); } // Set variables @@ -497,8 +497,8 @@ flextype()->put('/api/entries/copy', function (Request $request, Response $respo // Set entries and access token file if ( - ($entries_token_file_data = flextype('yaml')->decode(filesystem()->file($entries_token_file_path)->get())) && - ($access_token_file_data = flextype('yaml')->decode(filesystem()->file($access_token_file_path)->get())) + ($entries_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($entries_token_file_path)->get())) && + ($access_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($access_token_file_path)->get())) ) { if ( $entries_token_file_data['state'] === 'disabled' || @@ -507,7 +507,7 @@ flextype()->put('/api/entries/copy', function (Request $request, Response $respo 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'])); } if ( @@ -517,7 +517,7 @@ flextype()->put('/api/entries/copy', function (Request $request, Response $respo 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'])); } // Copy entry @@ -534,39 +534,39 @@ flextype()->put('/api/entries/copy', function (Request $request, Response $respo $response_code = $copy_entry === null ? 200 : 404; // Update calls counter - filesystem()->file($entries_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); + filesystem()->file($entries_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0102']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0102'])); + ->write(flextype('serializers')->json()->encode($api_errors['0102'])); } // Return response return $response ->withStatus($response_code) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($response_data)); + ->write(flextype('serializers')->json()->encode($response_data)); } 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'])); }); /** @@ -590,7 +590,7 @@ flextype()->delete('/api/entries', function (Request $request, Response $respons return $response ->withStatus($api_errors['0101']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0101']['http_status_code'])); + ->write(flextype('serializers')->json()->encode($api_errors['0101']['http_status_code'])); } // Set variables @@ -606,8 +606,8 @@ flextype()->delete('/api/entries', function (Request $request, Response $respons // Set entries and access token file if ( - ($entries_token_file_data = flextype('yaml')->decode(filesystem()->file($entries_token_file_path)->get())) && - ($access_token_file_data = flextype('yaml')->decode(filesystem()->file($access_token_file_path)->get())) + ($entries_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($entries_token_file_path)->get())) && + ($access_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($access_token_file_path)->get())) ) { if ( $entries_token_file_data['state'] === 'disabled' || @@ -616,7 +616,7 @@ flextype()->delete('/api/entries', function (Request $request, Response $respons 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'])); } if ( @@ -626,7 +626,7 @@ flextype()->delete('/api/entries', function (Request $request, Response $respons 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'])); } // Delete entry @@ -636,37 +636,37 @@ flextype()->delete('/api/entries', function (Request $request, Response $respons $response_code = $delete_entry ? 204 : 404; // Update calls counter - filesystem()->file($entries_token_file_path)->put(flextype('yaml')->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); + filesystem()->file($entries_token_file_path)->put(flextype('serializers')->yaml()->encode(array_replace_recursive($entries_token_file_data, ['calls' => $entries_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0102']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0102'])); + ->write(flextype('serializers')->json()->encode($api_errors['0102'])); } // Return response return $response ->withStatus($response_code) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($delete_entry)); + ->write(flextype('serializers')->json()->encode($delete_entry)); } 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'])); }); diff --git a/src/flextype/Endpoints/registry.php b/src/flextype/Endpoints/registry.php index f2cca4f5..273de334 100644 --- a/src/flextype/Endpoints/registry.php +++ b/src/flextype/Endpoints/registry.php @@ -43,7 +43,7 @@ flextype()->get('/api/registry', function (Request $request, Response $response) if (! isset($query['id']) || ! isset($query['token'])) { return $response->withStatus($api_errors['0300']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0300'])); + ->write(flextype('serializers')->json()->encode($api_errors['0300'])); } // Set variables @@ -56,14 +56,14 @@ flextype()->get('/api/registry', function (Request $request, Response $response) $registry_token_file_path = PATH['project'] . '/tokens/registry/' . $token . '/token.yaml'; // Set token file - if ($registry_token_file_data = flextype('yaml')->decode(filesystem()->file($registry_token_file_path)->get())) { + if ($registry_token_file_data = flextype('serializers')->yaml()->decode(filesystem()->file($registry_token_file_path)->get())) { if ( $registry_token_file_data['state'] === 'disabled' || ($registry_token_file_data['limit_calls'] !== 0 && $registry_token_file_data['calls'] >= $registry_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'])); } // Fetch registry @@ -80,14 +80,14 @@ flextype()->get('/api/registry', function (Request $request, Response $response) // Update calls counter filesystem()->file($registry_token_file_path) - ->put(flextype('yaml')->encode(array_replace_recursive($registry_token_file_data, ['calls' => $registry_token_file_data['calls'] + 1]))); + ->put(flextype('serializers')->yaml()->encode(array_replace_recursive($registry_token_file_data, ['calls' => $registry_token_file_data['calls'] + 1]))); if ($response_code === 404) { // Return response return $response ->withStatus($api_errors['0302']['http_status_code']) ->withHeader('Content-Type', 'application/json;charset=' . flextype('registry')->get('flextype.settings.charset')) - ->write(flextype('json')->encode($api_errors['0302'])); + ->write(flextype('serializers')->json()->encode($api_errors['0302'])); } // Return response @@ -98,17 +98,17 @@ flextype()->get('/api/registry', function (Request $request, Response $response) 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'])); }); diff --git a/src/flextype/Foundation/Entries/Entries.php b/src/flextype/Foundation/Entries/Entries.php index b8b3f69f..3c38eb41 100755 --- a/src/flextype/Foundation/Entries/Entries.php +++ b/src/flextype/Foundation/Entries/Entries.php @@ -129,7 +129,7 @@ class Entries } // Decode entry file content - $this->setStorage('fetch.data', flextype('frontmatter')->decode($entryFileContent)); + $this->setStorage('fetch.data', flextype('serializers')->frontmatter()->decode($entryFileContent)); // Run event: onEntriesFetchSingleHasResult flextype('emitter')->emit('onEntriesFetchSingleHasResult'); @@ -267,9 +267,9 @@ class Entries if (filesystem()->file($entryFile)->exists()) { $body = filesystem()->file($entryFile)->get(); - $entry = flextype('frontmatter')->decode($body); + $entry = flextype('serializers')->frontmatter()->decode($body); - return (bool) filesystem()->file($entryFile)->put(flextype('frontmatter')->encode(array_merge($entry, $this->getStorage('update.data')))); + return (bool) filesystem()->file($entryFile)->put(flextype('serializers')->frontmatter()->encode(array_merge($entry, $this->getStorage('update.data')))); } return false; @@ -307,7 +307,7 @@ class Entries // Create entry file $entryFile = $entryDir . '/entry' . '.' . flextype('registry')->get('flextype.settings.entries.extension'); if (! filesystem()->file($entryFile)->exists()) { - return (bool) filesystem()->file($entryFile)->put(flextype('frontmatter')->encode($this->getStorage('create.data'))); + return (bool) filesystem()->file($entryFile)->put(flextype('serializers')->frontmatter()->encode($this->getStorage('create.data'))); } return false; diff --git a/src/flextype/Foundation/Plugins.php b/src/flextype/Foundation/Plugins.php index 6512d280..15544ad0 100755 --- a/src/flextype/Foundation/Plugins.php +++ b/src/flextype/Foundation/Plugins.php @@ -43,7 +43,7 @@ class Plugins */ public function __construct() { - $this->locales = flextype('yaml')->decode(filesystem()->file(ROOT_DIR . '/src/flextype/locales.yaml')->get()); + $this->locales = flextype('serializers')->yaml()->decode(filesystem()->file(ROOT_DIR . '/src/flextype/locales.yaml')->get()); } /** @@ -122,7 +122,7 @@ class Plugins // Get default plugin settings content $defaultPluginSettingsFileContent = filesystem()->file($defaultPluginSettingsFile)->get(); - $defaultPluginSettings = flextype('yaml')->decode($defaultPluginSettingsFileContent); + $defaultPluginSettings = flextype('serializers')->yaml()->decode($defaultPluginSettingsFileContent); // Create project plugin settings file ! filesystem()->file($projectPluginSettingsFile)->exists() and filesystem()->file($projectPluginSettingsFile)->put($defaultPluginSettingsFileContent); @@ -133,7 +133,7 @@ class Plugins if (trim($projectPluginSettingsFileContent) === '') { $projectPluginSettings = []; } else { - $projectPluginSettings = flextype('yaml')->decode($projectPluginSettingsFileContent); + $projectPluginSettings = flextype('serializers')->yaml()->decode($projectPluginSettingsFileContent); } // Check if default plugin manifest file exists @@ -143,7 +143,7 @@ class Plugins // Get default plugin manifest content $defaultPluginManifestFileContent = filesystem()->file($defaultPluginManifestFile)->get(); - $defaultPluginManifest = flextype('yaml')->decode($defaultPluginManifestFileContent); + $defaultPluginManifest = flextype('serializers')->yaml()->decode($defaultPluginManifestFileContent); // Merge plugin settings and manifest data $plugins[$plugin['dirname']]['manifest'] = $defaultPluginManifest; @@ -204,7 +204,7 @@ class Plugins throw new RuntimeException('Load file: ' . $languageFile . ' - failed!'); } - $translates = flextype('yaml')->decode($content); + $translates = flextype('serializers')->yaml()->decode($content); I18n::add($translates, $locale); } diff --git a/src/flextype/Support/Serializers/Frontmatter.php b/src/flextype/Support/Serializers/Frontmatter.php index 1163d405..c192af60 100644 --- a/src/flextype/Support/Serializers/Frontmatter.php +++ b/src/flextype/Support/Serializers/Frontmatter.php @@ -69,10 +69,10 @@ class Frontmatter if (isset($input['content'])) { $content = $input['content']; $input = arrays($input)->delete('content')->toArray(); - $matter = flextype('yaml')->encode($input); + $matter = flextype('serializers')->yaml()->encode($input); } else { $content = ''; - $matter = flextype('yaml')->encode($input); + $matter = flextype('serializers')->yaml()->encode($input); } return '---' . "\n" . @@ -99,7 +99,7 @@ class Frontmatter return ['content' => strings($input)->trim()->toString()]; } - return flextype('yaml')->decode(strings($parts[1])->trim()->toString(), false) + ['content' => strings(implode(PHP_EOL . '---' . PHP_EOL, array_slice($parts, 2)))->trim()->toString()]; + return flextype('serializers')->yaml()->decode(strings($parts[1])->trim()->toString(), false) + ['content' => strings(implode(PHP_EOL . '---' . PHP_EOL, array_slice($parts, 2)))->trim()->toString()]; } public function getCacheID($input): string diff --git a/src/flextype/Support/Serializers/Serializers.php b/src/flextype/Support/Serializers/Serializers.php new file mode 100644 index 00000000..0a7725e5 --- /dev/null +++ b/src/flextype/Support/Serializers/Serializers.php @@ -0,0 +1,45 @@ +create('blog', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/blog/entry.md')->get())); - flextype('entries')->create('blog/post-1', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/blog/post-1/entry.md')->get())); - flextype('entries')->create('blog/post-2', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/blog/post-2/entry.md')->get())); + flextype('entries')->create('blog', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/blog/entry.md')->get())); + flextype('entries')->create('blog/post-1', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/blog/post-1/entry.md')->get())); + flextype('entries')->create('blog/post-2', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/blog/post-2/entry.md')->get())); $blog = flextype('entries')->fetch('blog'); @@ -23,10 +23,10 @@ test('test entries field for blog', function () { test('test entries field for catalog', function () { // Create catalog - flextype('entries')->create('catalog', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/entry.md')->get())); - flextype('entries')->create('catalog/bikes', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/bikes/entry.md')->get())); - flextype('entries')->create('catalog/bikes/gt', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/bikes/gt/entry.md')->get())); - flextype('entries')->create('catalog/bikes/norco', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/bikes/norco/entry.md')->get())); + flextype('entries')->create('catalog', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/entry.md')->get())); + flextype('entries')->create('catalog/bikes', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/bikes/entry.md')->get())); + flextype('entries')->create('catalog/bikes/gt', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/bikes/gt/entry.md')->get())); + flextype('entries')->create('catalog/bikes/norco', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/catalog/bikes/norco/entry.md')->get())); flextype('entries')->create('catalog/bikes/foo', ['title' => 'foo']); flextype('entries')->create('catalog/bikes/foo/bar', ['title' => 'bar']); @@ -64,11 +64,11 @@ test('test entries field for catalog', function () { }); test('test entries field for albmus', function () { - flextype('entries')->create('root', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/entry.md')->get())); + flextype('entries')->create('root', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/entry.md')->get())); - flextype('entries')->create('albums', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/albums/entry.md')->get())); - flextype('entries')->create('albums/category-1', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/albums/category-1/entry.md')->get())); - flextype('entries')->create('albums/category-1/album-1', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/albums/category-1/album-1/entry.md')->get())); + flextype('entries')->create('albums', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/albums/entry.md')->get())); + flextype('entries')->create('albums/category-1', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/albums/category-1/entry.md')->get())); + flextype('entries')->create('albums/category-1/album-1', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/root/albums/category-1/album-1/entry.md')->get())); flextype('entries')->create('banners', ['title' => 'Banners']); flextype('entries')->create('banners/1', ['title' => 'Banner1']); @@ -80,10 +80,10 @@ test('test entries field for albmus', function () { }); test('test entries field for long nested entries', function () { - flextype('entries')->create('level1', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/entry.md')->get())); - flextype('entries')->create('level1/level2', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/level2/entry.md')->get())); - flextype('entries')->create('level1/level2/level3', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/level2/level3/entry.md')->get())); - flextype('entries')->create('level1/level2/level3/level4', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/level2/level3/level4/entry.md')->get())); + flextype('entries')->create('level1', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/entry.md')->get())); + flextype('entries')->create('level1/level2', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/level2/entry.md')->get())); + flextype('entries')->create('level1/level2/level3', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/level2/level3/entry.md')->get())); + flextype('entries')->create('level1/level2/level3/level4', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/level1/level2/level3/level4/entry.md')->get())); $level = flextype('entries')->fetch('level1'); @@ -94,7 +94,7 @@ test('test entries field for long nested entries', function () { }); test('test entries field for macroable fetch entries', function () { - flextype('entries')->create('macroable', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/macroable/entry.md')->get())); + flextype('entries')->create('macroable', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/macroable/entry.md')->get())); flextype('entries')::macro('fetchExtraData', function ($id, $options) { return ['id' => $id, 'options' => $options]; diff --git a/tests/Foundation/Entries/Fields/RegistryFieldTest.php b/tests/Foundation/Entries/Fields/RegistryFieldTest.php index 977d3750..5ae27667 100644 --- a/tests/Foundation/Entries/Fields/RegistryFieldTest.php +++ b/tests/Foundation/Entries/Fields/RegistryFieldTest.php @@ -11,9 +11,9 @@ afterEach(function (): void { }); test('test registry field', function () { - flextype('entries')->create('registry-root', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/registry-root/entry.md')->get())); - flextype('entries')->create('registry-root/level-1', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/registry-root/level-1/entry.md')->get())); - flextype('entries')->create('registry-root/level-1/level-2', flextype('frontmatter')->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/registry-root/level-1/level-2/entry.md')->get())); + flextype('entries')->create('registry-root', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/registry-root/entry.md')->get())); + flextype('entries')->create('registry-root/level-1', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/registry-root/level-1/entry.md')->get())); + flextype('entries')->create('registry-root/level-1/level-2', flextype('serializers')->frontmatter()->decode(filesystem()->file(ROOT_DIR . '/tests/Foundation/Entries/Fields/fixtures/entries/registry-root/level-1/level-2/entry.md')->get())); $data = flextype('entries')->fetch('registry-root'); diff --git a/tests/Support/Serializers/FrontmatterTest.php b/tests/Support/Serializers/FrontmatterTest.php index b4be6ec0..0f6727e6 100644 --- a/tests/Support/Serializers/FrontmatterTest.php +++ b/tests/Support/Serializers/FrontmatterTest.php @@ -4,7 +4,7 @@ declare(strict_types=1); test('test encode() method', function () { $this->assertEquals("---\ntitle: Foo\n---\nBar", - flextype('frontmatter') + flextype('serializers')->frontmatter() ->encode(['title' => 'Foo', 'content' => 'Bar'])); }); @@ -12,13 +12,13 @@ test('test encode() method', function () { test('test decode() method', function () { $this->assertEquals(['title' => 'Foo', 'content' => 'Bar'], - flextype('frontmatter') + flextype('serializers')->frontmatter() ->decode("---\ntitle: Foo\n---\nBar")); }); test('test getCacheID() method', function () { $string = "---\ntitle: Foo\n---\nBar"; - $cache_id = flextype('frontmatter') + $cache_id = flextype('serializers')->frontmatter() ->getCacheID($string); $this->assertEquals(32, strlen($cache_id)); $this->assertNotEquals($string, $cache_id); diff --git a/tests/Support/Serializers/JsonTest.php b/tests/Support/Serializers/JsonTest.php index edadbb53..ed8809cd 100644 --- a/tests/Support/Serializers/JsonTest.php +++ b/tests/Support/Serializers/JsonTest.php @@ -4,7 +4,7 @@ declare(strict_types=1); test('test encode() method', function () { $this->assertEquals('{"title":"Foo","content":"Bar"}', - flextype('json') + flextype('serializers')->json() ->encode(['title' => 'Foo', 'content' => 'Bar'])); }); @@ -12,13 +12,13 @@ test('test encode() method', function () { test('test decode() method', function () { $this->assertEquals(['title' => 'Foo', 'content' => 'Bar'], - flextype('json') + flextype('serializers')->json() ->decode('{"title":"Foo","content":"Bar"}')); }); test('test getCacheID() method', function () { $string = '{"title":"Foo","content":"Bar"}'; - $cache_id = flextype('json') + $cache_id = flextype('serializers')->json() ->getCacheID($string); $this->assertEquals(32, strlen($cache_id)); $this->assertNotEquals($string, $cache_id); diff --git a/tests/Support/Serializers/YamlTest.php b/tests/Support/Serializers/YamlTest.php index 28011d05..d931dbc0 100644 --- a/tests/Support/Serializers/YamlTest.php +++ b/tests/Support/Serializers/YamlTest.php @@ -4,7 +4,7 @@ declare(strict_types=1); test('test encode() method', function () { $this->assertEquals("title: Foo\ncontent: Bar\n", - flextype('yaml') + flextype('serializers')->yaml() ->encode(['title' => 'Foo', 'content' => 'Bar'])); }); @@ -12,13 +12,13 @@ test('test encode() method', function () { test('test decode() method', function () { $this->assertEquals(['title' => 'Foo', 'content' => 'Bar'], - flextype('yaml') + flextype('serializers')->yaml() ->decode("title: Foo\ncontent: Bar")); }); test('test getCacheID() method', function () { $string = "title:Foo\ncontent:Bar"; - $cache_id = flextype('yaml') + $cache_id = flextype('serializers')->yaml() ->getCacheID($string); $this->assertEquals(32, strlen($cache_id)); $this->assertNotEquals($string, $cache_id);