1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-05 12:47:45 +02:00

feat(core): add Serializer and Parsers for data encoding/decoding/parsing. #424

This commit is contained in:
Awilum
2020-04-22 23:33:27 +03:00
parent 9265945580
commit c32de2ae7a
17 changed files with 365 additions and 110 deletions

View File

@@ -158,6 +158,20 @@ if ($flextype['registry']->get('flextype.settings.errors.display')) {
*/
date_default_timezone_set($flextype['registry']->get('flextype.settings.timezone'));
/**
* Init shortocodes
*
* Load Flextype Shortcodes extensions from directory /flextype/shortcodes/ based on settings.shortcodes.extensions array
*/
$shortcodes_extensions = $flextype['registry']->get('flextype.settings.shortcodes.extensions');
foreach ($shortcodes_extensions as $shortcodes_extension) {
$shortcodes_extension_file_path = ROOT_DIR . '/src/flextype/core/Parsers/shortcodes/' . $shortcodes_extension . 'ShortcodeExtension.php';
if (file_exists($shortcodes_extension_file_path)) {
include_once $shortcodes_extension_file_path;
}
}
/**
* Init plugins
*/

View File

@@ -193,6 +193,12 @@ slugify:
image:
driver: gd
# Shortcodes
#
# - extensions: Flextype Shortcodes Extension to load.
shortcodes:
extensions: ['Entries', 'Registry', 'Url']
# CORS
#
# CORS (Cross-origin resource sharing) allows JavaScript web apps to make HTTP requests to other domains.

View File

@@ -51,7 +51,7 @@ class Entries
public $entries = [];
/**
* Set Expression
* Expression
*
* @var array
* @access public
@@ -87,7 +87,7 @@ class Entries
];
/**
* Set Order Direction
* Entires Order Direction
*
* @var array
* @access public
@@ -98,7 +98,7 @@ class Entries
];
/**
* Set Visibility
* Entries Visibility
*
* @var array
* @access public
@@ -109,6 +109,23 @@ class Entries
'visible' => 'visible',
];
/**
* Entries system fields
*
* @var array
* @access public
*/
public $system_fields = [
'published_at' => 'published_at',
'published_by' => 'published_by',
'created_at' => 'created_at',
'modified_at' => 'modified_at',
'slug' => 'slug',
'routable' => 'routable',
'parsers' => 'parsers',
'visibility' => 'visibility',
];
/**
* Flextype Dependency Container
*
@@ -187,7 +204,7 @@ class Entries
// else Try to get requested entry from the filesystem
}
$entry_decoded = $this->flextype['parser']->decode(Filesystem::read($entry_file), 'frontmatter');
$entry_decoded = $this->flextype['serializer']->decode(Filesystem::read($entry_file), 'frontmatter');
// Add predefined entry items
// Entry Published At
@@ -212,6 +229,41 @@ class Entries
$entry_decoded['visibility'] = (string) $this->visibility['visible'];
}
// Parsers
if (isset($entry_decoded['parsers'])) {
foreach ($entry_decoded['parsers'] as $parser_name => $parser_data) {
if (in_array($parser_name, ['markdown', 'shortcodes'])) {
if (isset($entry_decoded['parsers'][$parser_name]['enabled']) && $entry_decoded['parsers'][$parser_name]['enabled'] === true) {
if (isset($entry_decoded['parsers'][$parser_name]['fields'])) {
if (is_array($entry_decoded['parsers'][$parser_name]['fields'])) {
foreach ($entry_decoded['parsers'][$parser_name]['fields'] as $field) {
if (! in_array($field, $this->system_fields)) {
if ($parser_name == 'markdown') {
$entry_decoded[$field] = $this->flextype['parser']->decode($entry_decoded[$field], 'markdown');
}
if ($parser_name == 'shortcodes') {
$entry_decoded[$field] = $this->flextype['parser']->decode($entry_decoded[$field], 'shortcodes');
}
}
}
} elseif ($entry_decoded['parsers']['shortcodes']['fields'] == "*") {
foreach ($entry_decoded as $key => $value) {
if (! in_array($key, $this->system_fields)) {
if ($parser_name == 'markdown') {
$entry_decoded[$key] = $this->flextype['parser']->decode($entry_decoded[$key], 'markdown');
}
if ($parser_name == 'shortcodes') {
$entry_decoded[$key] = $this->flextype['parser']->decode($entry_decoded[$key], 'shortcodes');
}
}
}
}
}
}
}
}
}
// Save decoded entry content into the cache
$this->flextype['cache']->save($entry_cache_id, $entry_decoded);
@@ -320,12 +372,12 @@ class Entries
// Create entries array from entries list and ignore current requested entry
foreach ($entries_list as $current_entry) {
if (strpos($current_entry['path'], $bind_id . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension')) !== false) {
if (strpos($current_entry['path'], $bind_id . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension')) !== false) {
// ignore ...
} else {
// We are checking...
// Whether the requested entry is a director and whether the file entry is in this directory.
if ($current_entry['type'] === 'dir' && Filesystem::has($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension'))) {
if ($current_entry['type'] === 'dir' && Filesystem::has($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension'))) {
// Get entry uid
// 1. Remove entries path
// 2. Remove left and right slashes
@@ -341,7 +393,7 @@ class Entries
$entries_ids .= $uid;
// Create entries IDs timestamps
$entries_ids_timestamps .= Filesystem::getTimestamp($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension'));
$entries_ids_timestamps .= Filesystem::getTimestamp($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension'));
}
}
}
@@ -475,9 +527,9 @@ class Entries
if (Filesystem::has($entry_file)) {
$body = Filesystem::read($entry_file);
$entry = $this->flextype['parser']->decode($body, 'frontmatter');
$entry = $this->flextype['serializer']->decode($body, 'frontmatter');
return Filesystem::write($entry_file, $this->flextype['parser']->encode(array_merge($entry, $data), 'frontmatter'));
return Filesystem::write($entry_file, $this->flextype['serializer']->encode(array_merge($entry, $data), 'frontmatter'));
}
return false;
@@ -501,7 +553,7 @@ class Entries
// Try to create directory for new entry
if (Filesystem::createDir($entry_dir)) {
// Check if new entry file exists
if (! Filesystem::has($entry_file = $entry_dir . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension'))) {
if (! Filesystem::has($entry_file = $entry_dir . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension'))) {
$data['uuid'] = Uuid::uuid4()->toString();
$data['published_at'] = date($this->flextype->registry->get('flextype.settings.date_format'), time());
$data['created_at'] = date($this->flextype->registry->get('flextype.settings.date_format'), time());
@@ -520,7 +572,7 @@ class Entries
$data['visibility'] = 'visible';
}
return Filesystem::write($entry_file, $this->flextype['parser']->encode($data, 'frontmatter'));
return Filesystem::write($entry_file, $this->flextype['serializer']->encode($data, 'frontmatter'));
}
return false;
@@ -585,7 +637,7 @@ class Entries
*/
public function getFileLocation(string $id) : string
{
return PATH['site'] . '/entries/' . $id . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension');
return PATH['site'] . '/entries/' . $id . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension');
}
/**

View File

@@ -24,16 +24,7 @@ class Parser
* @var array
*/
private $parsers = [
'frontmatter' => [
'name' => 'frontmatter',
'ext' => 'md',
], 'json' => [
'name' => 'json',
'ext' => 'json',
], 'yaml' => [
'name' => 'yaml',
'ext' => 'yaml',
], 'markdown' => [
'markdown' => [
'name' => 'markdown',
'ext' => 'md',
],
@@ -66,23 +57,19 @@ class Parser
* Dumps a PHP value to a string CONTENT.
*
* @param mixed $input Content to parse
* @param string $parser Parser type [frontmatter, json, yaml]
* @param string $parser Parser type [markdown]
*
* @return mixed PHP value converted to a string CONTENT.
*/
public function encode($input, string $parser) : string
{
switch ($parser) {
case 'frontmatter':
return Frontmatter::encode($input);
case 'markdown':
return $input;
break;
case 'json':
return Json::encode($input);
break;
case 'yaml':
return Yaml::encode($input);
case 'shortcodes':
return $input;
break;
default:
@@ -102,57 +89,6 @@ class Parser
public function decode(string $input, string $parser, bool $cache = true)
{
switch ($parser) {
case 'frontmatter':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = Frontmatter::decode($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return Frontmatter::decode($input);
}
break;
case 'json':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = Json::decode($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return Json::decode($input);
}
break;
case 'yaml':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = Yaml::decode($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return Yaml::decode($input);
}
break;
case 'markdown':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
@@ -169,6 +105,23 @@ class Parser
return Markdown::decode($input);
}
break;
case 'shortcodes':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = $this->flextype['shortcodes']->process($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return $this->flextype['shortcodes']->process($input);
}
break;
default:
// code...

View File

@@ -0,0 +1,18 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
use Flextype\Component\Arr\Arr;
use Thunder\Shortcode\Shortcode\ShortcodeInterface;
// Shortcode: [entries_fetch id="entry-id" field="field-name" default="default-value"]
$flextype['shortcodes']->addHandler('entries_fetch', static function (ShortcodeInterface $s) use ($flextype) {
return Arr::get($flextype['entries']->fetch($s->getParameter('id')), $s->getParameter('field'), $s->getParameter('default'));
});

View File

@@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
use Thunder\Shortcode\Shortcode\ShortcodeInterface;
// Shortcode: [registry_get name="item-name" default="default-value"]
$flextype['shortcodes']->addHandler('registry_get', static function (ShortcodeInterface $s) use ($flextype) {
return $flextype['registry']->get($s->getParameter('name'), $s->getParameter('default'));
});

View File

@@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
use Slim\Http\Environment;
use Slim\Http\Uri;
// Shortcode: [url]
$flextype['shortcodes']->addHandler('url', static function () use ($flextype) {
if ($flextype['registry']->has('flextype.settings.url') && $flextype['registry']->get('flextype.settings.url') != '') {
return $flextype['registry']->get('flextype.settings.url');
} else {
return Uri::createFromEnvironment(new Environment($_SERVER))->getBaseUrl();
}
});

View File

@@ -43,7 +43,7 @@ class Plugins
public function __construct($flextype, $app)
{
$this->flextype = $flextype;
$this->locales = $this->flextype['parser']->decode(Filesystem::read(ROOT_DIR . '/src/flextype/config/locales.yaml'), 'yaml');
$this->locales = $this->flextype['serializer']->decode(Filesystem::read(ROOT_DIR . '/src/flextype/config/locales.yaml'), 'yaml');
}
/**
@@ -126,7 +126,7 @@ class Plugins
// Get default plugin settings content
$default_plugin_settings_file_content = Filesystem::read($default_plugin_settings_file);
$default_plugin_settings = $this->flextype['parser']->decode($default_plugin_settings_file_content, 'yaml');
$default_plugin_settings = $this->flextype['serializer']->decode($default_plugin_settings_file_content, 'yaml');
// Create site plugin settings file
! Filesystem::has($site_plugin_settings_file) and Filesystem::write($site_plugin_settings_file, $default_plugin_settings_file_content);
@@ -137,7 +137,7 @@ class Plugins
if (trim($site_plugin_settings_file_content) === '') {
$site_plugin_settings = [];
} else {
$site_plugin_settings = $this->flextype['parser']->decode($site_plugin_settings_file_content, 'yaml');
$site_plugin_settings = $this->flextype['serializer']->decode($site_plugin_settings_file_content, 'yaml');
}
// Check if default plugin manifest file exists
@@ -147,7 +147,7 @@ class Plugins
// Get default plugin manifest content
$default_plugin_manifest_file_content = Filesystem::read($default_plugin_manifest_file);
$default_plugin_manifest = $this->flextype['parser']->decode($default_plugin_manifest_file_content, 'yaml');
$default_plugin_manifest = $this->flextype['serializer']->decode($default_plugin_manifest_file_content, 'yaml');
// Merge plugin settings and manifest data
$plugins[$plugin['dirname']]['manifest'] = $default_plugin_manifest;
@@ -210,7 +210,7 @@ class Plugins
throw new RuntimeException('Load file: ' . $language_file . ' - failed!');
}
$translates = $this->flextype['parser']->decode($content, 'yaml');
$translates = $this->flextype['serializer']->decode($content, 'yaml');
I18n::add($translates, $locale);
}

View File

@@ -0,0 +1,158 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
use function md5;
class Serializer
{
/**
* Flextype Dependency Container
*/
private $flextype;
/**
* Serializer
*
* @var array
*/
private $serializer = [
'frontmatter' => [
'name' => 'frontmatter',
'ext' => 'md',
], 'json' => [
'name' => 'json',
'ext' => 'json',
], 'yaml' => [
'name' => 'yaml',
'ext' => 'yaml',
],
];
/**
* Constructor
*
* @access public
*/
public function __construct($flextype)
{
$this->flextype = $flextype;
}
/**
* Get Parser Information
*
* @param string $input Content to parse
* @param string $serializer Parser type [frontmatter, json, yaml]
*
* @return array
*/
public function getParserInfo(string $serializer) : array
{
return $this->serializer[$serializer];
}
/**
* Dumps a PHP value to a string CONTENT.
*
* @param mixed $input Content to parse
* @param string $serializer Parser type [frontmatter, json, yaml]
*
* @return mixed PHP value converted to a string CONTENT.
*/
public function encode($input, string $serializer) : string
{
switch ($serializer) {
case 'frontmatter':
return Frontmatter::encode($input);
break;
case 'json':
return Json::encode($input);
break;
case 'yaml':
return Yaml::encode($input);
break;
default:
break;
}
}
/**
* Parse INPUT content into a PHP value.
*
* @param string $input Content to parse
* @param string $serializer Serializer type [frontmatter, json, yaml]
* @param bool $cache Cache result data or no. Default is true
*
* @return mixed The Content converted to a PHP value
*/
public function decode(string $input, string $serializer, bool $cache = true)
{
switch ($serializer) {
case 'frontmatter':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = Frontmatter::decode($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return Frontmatter::decode($input);
}
break;
case 'json':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = Json::decode($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return Json::decode($input);
}
break;
case 'yaml':
if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) {
$key = md5($input);
if ($data_from_cache = $this->flextype['cache']->fetch($key)) {
return $data_from_cache;
}
$data = Yaml::decode($input);
$this->flextype['cache']->save($key, $data);
return $data;
} else {
return Yaml::decode($input);
}
break;
default:
// code...
break;
}
}
}

View File

@@ -34,6 +34,7 @@ use League\Glide\Responses\SlimResponseFactory;
use League\Glide\ServerFactory;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Thunder\Shortcode\ShortcodeFacade;
use function date;
use function extension_loaded;
use function ucfirst;
@@ -112,6 +113,20 @@ $flextype['cache'] = static function ($container) use ($flextype) {
return new Cache($flextype);
};
/**
* Add shortcodes service to Flextype container
*/
$flextype['shortcodes'] = static function ($container) {
return new ShortcodeFacade();
};
/**
* Add serializer service to Flextype container
*/
$flextype['serializer'] = static function ($container) use ($flextype) {
return new Serializer($flextype);
};
/**
* Add parser service to Flextype container
*/

View File

@@ -59,7 +59,7 @@ $app->get('/api/delivery/entries', function (Request $request, Response $respons
$delivery_entries_token_file_path = PATH['site'] . '/tokens/delivery/entries/' . $token. '/token.yaml';
// Set delivery token file
if ($delivery_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_entries_token_file_path), 'yaml')) {
if ($delivery_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($delivery_entries_token_file_path), 'yaml')) {
if ($delivery_entries_token_file_data['state'] === 'disabled' ||
($delivery_entries_token_file_data['limit_calls'] !== 0 && $delivery_entries_token_file_data['calls'] >= $delivery_entries_token_file_data['limit_calls'])) {
return $response->withJson($api_sys_messages['AccessTokenInvalid'], 401);
@@ -72,7 +72,7 @@ $app->get('/api/delivery/entries', function (Request $request, Response $respons
$response_code = count($response_data['data']) > 0 ? 200 : 404;
// Update calls counter
Filesystem::write($delivery_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_entries_token_file_data, ['calls' => $delivery_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($delivery_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($delivery_entries_token_file_data, ['calls' => $delivery_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {

View File

@@ -56,7 +56,7 @@ $app->get('/api/delivery/registry', function (Request $request, Response $respon
$delivery_registry_token_file_path = PATH['site'] . '/tokens/delivery/registry/' . $token . '/token.yaml';
// Set delivery token file
if ($delivery_registry_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_registry_token_file_path), 'yaml')) {
if ($delivery_registry_token_file_data = $flextype['serializer']->decode(Filesystem::read($delivery_registry_token_file_path), 'yaml')) {
if ($delivery_registry_token_file_data['state'] === 'disabled' ||
($delivery_registry_token_file_data['limit_calls'] !== 0 && $delivery_registry_token_file_data['calls'] >= $delivery_registry_token_file_data['limit_calls'])) {
return $response->withJson($api_sys_messages['AccessTokenInvalid'], 401);
@@ -76,7 +76,7 @@ $app->get('/api/delivery/registry', function (Request $request, Response $respon
}
// Update calls counter
Filesystem::write($delivery_registry_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_registry_token_file_data, ['calls' => $delivery_registry_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($delivery_registry_token_file_path, $flextype['serializer']->encode(array_replace_recursive($delivery_registry_token_file_data, ['calls' => $delivery_registry_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {

View File

@@ -58,7 +58,7 @@ $app->get('/api/images/{path:.+}', function (Request $request, Response $respons
$delivery_images_token_file_path = PATH['site'] . '/tokens/images/' . $token . '/token.yaml';
// Set delivery token file
if ($delivery_images_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_images_token_file_path), 'yaml')) {
if ($delivery_images_token_file_data = $flextype['serializer']->decode(Filesystem::read($delivery_images_token_file_path), 'yaml')) {
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'])) {
@@ -66,7 +66,7 @@ $app->get('/api/images/{path:.+}', function (Request $request, Response $respons
}
// Update calls counter
Filesystem::write($delivery_images_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_images_token_file_data, ['calls' => $delivery_images_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($delivery_images_token_file_path, $flextype['serializer']->encode(array_replace_recursive($delivery_images_token_file_data, ['calls' => $delivery_images_token_file_data['calls'] + 1]), 'yaml'));
if (Filesystem::has(PATH['site'] . '/uploads/entries/' . $args['path'])) {
header('Access-Control-Allow-Origin: *');

View File

@@ -65,7 +65,7 @@ $app->get('/api/management/entries', function (Request $request, Response $respo
$management_entries_token_file_path = PATH['site'] . '/tokens/management/entries/' . $token. '/token.yaml';
// Set management token file
if ($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) {
if ($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) {
if ($management_entries_token_file_data['state'] === 'disabled' ||
($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) {
return $response->withJson($api_sys_messages['AccessTokenInvalid'], 401);
@@ -78,7 +78,7 @@ $app->get('/api/management/entries', function (Request $request, Response $respo
$response_code = count($response_data['data']) > 0 ? 200 : 404;
// Update calls counter
Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {
@@ -138,8 +138,8 @@ $app->post('/api/management/entries', function (Request $request, Response $resp
$access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml';
// Set management and access token file
if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if ($management_entries_token_file_data['state'] === 'disabled' ||
($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) {
@@ -164,7 +164,7 @@ $app->post('/api/management/entries', function (Request $request, Response $resp
$response_code = ($create_entry) ? 200 : 404;
// Update calls counter
Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {
@@ -223,8 +223,8 @@ $app->patch('/api/management/entries', function (Request $request, Response $res
$access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml';
// Set management and access token file
if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if ($management_entries_token_file_data['state'] === 'disabled' ||
($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) {
@@ -249,7 +249,7 @@ $app->patch('/api/management/entries', function (Request $request, Response $res
$response_code = ($update_entry) ? 200 : 404;
// Update calls counter
Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {
@@ -308,8 +308,8 @@ $app->put('/api/management/entries', function (Request $request, Response $respo
$access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml';
// Set management and access token file
if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if ($management_entries_token_file_data['state'] === 'disabled' ||
($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) {
@@ -335,7 +335,7 @@ $app->put('/api/management/entries', function (Request $request, Response $respo
$response_code = ($rename_entry) ? 200 : 404;
// Update calls counter
Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {
@@ -394,8 +394,8 @@ $app->put('/api/management/entries/copy', function (Request $request, Response $
$access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml';
// Set management and access token file
if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if ($management_entries_token_file_data['state'] === 'disabled' ||
($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) {
@@ -421,7 +421,7 @@ $app->put('/api/management/entries/copy', function (Request $request, Response $
$response_code = ($copy_entry) ? 200 : 404;
// Update calls counter
Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {
@@ -478,8 +478,8 @@ $app->delete('/api/management/entries', function (Request $request, Response $re
$access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml';
// Set management and access token file
if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) &&
($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) {
if ($management_entries_token_file_data['state'] === 'disabled' ||
($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) {
@@ -498,7 +498,7 @@ $app->delete('/api/management/entries', function (Request $request, Response $re
$response_code = ($delete_entry) ? 204 : 404;
// Update calls counter
Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml'));
if ($response_code == 404) {