2021-06-26 11:23:15 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace BookStack\Exceptions;
|
2019-11-17 08:26:43 -05:00
|
|
|
|
|
|
|
use Exception;
|
2022-02-24 09:16:09 -05:00
|
|
|
use Illuminate\Http\JsonResponse;
|
2023-06-14 08:30:14 -04:00
|
|
|
use Illuminate\Contracts\Support\Responsable;
|
2019-11-17 08:26:43 -05:00
|
|
|
|
2023-06-14 08:30:14 -04:00
|
|
|
class JsonDebugException extends Exception implements Responsable
|
2019-11-17 08:26:43 -05:00
|
|
|
{
|
2022-02-24 09:16:09 -05:00
|
|
|
protected array $data;
|
2019-11-17 08:26:43 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
* JsonDebugException constructor.
|
|
|
|
*/
|
2022-02-24 09:16:09 -05:00
|
|
|
public function __construct(array $data)
|
2019-11-17 08:26:43 -05:00
|
|
|
{
|
|
|
|
$this->data = $data;
|
2022-02-24 09:16:09 -05:00
|
|
|
parent::__construct();
|
2019-11-17 08:26:43 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2022-05-09 10:57:50 -04:00
|
|
|
* Convert this exception into a response.
|
|
|
|
* We add a manual data conversion to UTF8 to ensure any binary data is presentable as a JSON string.
|
2019-11-17 08:26:43 -05:00
|
|
|
*/
|
2023-06-14 08:30:14 -04:00
|
|
|
public function toResponse($request): JsonResponse
|
2019-11-17 08:26:43 -05:00
|
|
|
{
|
2022-05-09 10:57:50 -04:00
|
|
|
$cleaned = mb_convert_encoding($this->data, 'UTF-8');
|
|
|
|
|
|
|
|
return response()->json($cleaned);
|
2019-11-17 08:26:43 -05:00
|
|
|
}
|
2021-03-07 17:24:05 -05:00
|
|
|
}
|