Upgrade to 3.7.1
This commit is contained in:
@@ -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']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user