-<?php namespace BookStack\Exceptions;
+<?php
+
+namespace BookStack\Exceptions;
use Exception;
+use Illuminate\Http\JsonResponse;
+use Illuminate\Contracts\Support\Responsable;
-class JsonDebugException extends Exception
+class JsonDebugException extends Exception implements Responsable
{
-
- protected $data;
+ protected array $data;
/**
* JsonDebugException constructor.
*/
- public function __construct($data)
+ public function __construct(array $data)
{
$this->data = $data;
+ parent::__construct();
}
/**
- * Covert this exception into a response.
+ * 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.
*/
- public function render()
+ public function toResponse($request): JsonResponse
{
- return response()->json($this->data);
+ $cleaned = mb_convert_encoding($this->data, 'UTF-8');
+
+ return response()->json($cleaned);
}
-}
\ No newline at end of file
+}