Upgrade to 3.7.1

This commit is contained in:
Bastian Allgeier
2022-07-12 13:33:21 +02:00
parent 7931eb5e47
commit 1ad1eaf387
377 changed files with 63981 additions and 63824 deletions

View File

@@ -17,61 +17,61 @@ namespace Kirby\Panel;
*/
abstract class Json
{
protected static $key = '$response';
protected static $key = '$response';
/**
* Renders the error response with the provided message
*
* @param string $message
* @param int $code
* @return array
*/
public static function error(string $message, int $code = 404)
{
return [
'code' => $code,
'error' => $message
];
}
/**
* Renders the error response with the provided message
*
* @param string $message
* @param int $code
* @return array
*/
public static function error(string $message, int $code = 404)
{
return [
'code' => $code,
'error' => $message
];
}
/**
* Prepares the JSON response for the Panel
*
* @param mixed $data
* @param array $options
* @return mixed
*/
public static function response($data, array $options = [])
{
// handle redirects
if (is_a($data, 'Kirby\Panel\Redirect') === true) {
$data = [
'redirect' => $data->location(),
'code' => $data->code()
];
/**
* Prepares the JSON response for the Panel
*
* @param mixed $data
* @param array $options
* @return mixed
*/
public static function response($data, array $options = [])
{
// handle redirects
if (is_a($data, 'Kirby\Panel\Redirect') === true) {
$data = [
'redirect' => $data->location(),
'code' => $data->code()
];
// handle Kirby exceptions
} elseif (is_a($data, 'Kirby\Exception\Exception') === true) {
$data = static::error($data->getMessage(), $data->getHttpCode());
// handle Kirby exceptions
} elseif (is_a($data, 'Kirby\Exception\Exception') === true) {
$data = static::error($data->getMessage(), $data->getHttpCode());
// handle exceptions
} elseif (is_a($data, 'Throwable') === true) {
$data = static::error($data->getMessage(), 500);
// handle exceptions
} elseif (is_a($data, 'Throwable') === true) {
$data = static::error($data->getMessage(), 500);
// only expect arrays from here on
} elseif (is_array($data) === false) {
$data = static::error('Invalid response', 500);
}
// only expect arrays from here on
} elseif (is_array($data) === false) {
$data = static::error('Invalid response', 500);
}
if (empty($data) === true) {
$data = static::error('The response is empty', 404);
}
if (empty($data) === true) {
$data = static::error('The response is empty', 404);
}
// always inject the response code
$data['code'] ??= 200;
$data['path'] = $options['path'] ?? null;
$data['referrer'] = Panel::referrer();
// always inject the response code
$data['code'] ??= 200;
$data['path'] = $options['path'] ?? null;
$data['referrer'] = Panel::referrer();
return Panel::json([static::$key => $data], $data['code']);
}
return Panel::json([static::$key => $data], $data['code']);
}
}