mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Refactor exception handling by using interface
This commit is contained in:
parent
9ba7d1e6c5
commit
321a459421
@ -9,7 +9,7 @@ use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
|||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
class Handler extends ExceptionHandler
|
class Handler extends ExceptionHandler
|
||||||
@ -79,10 +79,10 @@ class Handler extends ExceptionHandler
|
|||||||
*/
|
*/
|
||||||
protected function renderApiException(Throwable $e): JsonResponse
|
protected function renderApiException(Throwable $e): JsonResponse
|
||||||
{
|
{
|
||||||
$code = $e->getCode() === 0 ? 500 : $e->getCode();
|
$code = 500;
|
||||||
$headers = [];
|
$headers = [];
|
||||||
|
|
||||||
if ($e instanceof HttpException) {
|
if ($e instanceof HttpExceptionInterface) {
|
||||||
$code = $e->getStatusCode();
|
$code = $e->getStatusCode();
|
||||||
$headers = $e->getHeaders();
|
$headers = $e->getHeaders();
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,9 @@ namespace BookStack\Exceptions;
|
|||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Contracts\Support\Responsable;
|
use Illuminate\Contracts\Support\Responsable;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||||
|
|
||||||
class PrettyException extends Exception implements Responsable
|
class PrettyException extends Exception implements Responsable, HttpExceptionInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var ?string
|
* @var ?string
|
||||||
@ -17,6 +18,11 @@ class PrettyException extends Exception implements Responsable
|
|||||||
*/
|
*/
|
||||||
protected $details = null;
|
protected $details = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $headers = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render a response for when this exception occurs.
|
* Render a response for when this exception occurs.
|
||||||
*
|
*
|
||||||
@ -24,7 +30,7 @@ class PrettyException extends Exception implements Responsable
|
|||||||
*/
|
*/
|
||||||
public function toResponse($request)
|
public function toResponse($request)
|
||||||
{
|
{
|
||||||
$code = ($this->getCode() === 0) ? 500 : $this->getCode();
|
$code = $this->getStatusCode();
|
||||||
|
|
||||||
return response()->view('errors.' . $code, [
|
return response()->view('errors.' . $code, [
|
||||||
'message' => $this->getMessage(),
|
'message' => $this->getMessage(),
|
||||||
@ -46,4 +52,30 @@ class PrettyException extends Exception implements Responsable
|
|||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the desired HTTP status code for this exception.
|
||||||
|
*/
|
||||||
|
public function getStatusCode(): int
|
||||||
|
{
|
||||||
|
return ($this->getCode() === 0) ? 500 : $this->getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the desired HTTP headers for this exception.
|
||||||
|
* @return array<mixed>
|
||||||
|
*/
|
||||||
|
public function getHeaders(): array
|
||||||
|
{
|
||||||
|
return $this->headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the desired HTTP headers for this exception.
|
||||||
|
* @param array<mixed> $headers
|
||||||
|
*/
|
||||||
|
public function setHeaders(array $headers): void
|
||||||
|
{
|
||||||
|
$this->headers = $headers;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user