X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/c429cf78187e80deb63982a282a1c6889f30291a..refs/pull/3593/head:/app/Exceptions/NotifyException.php diff --git a/app/Exceptions/NotifyException.php b/app/Exceptions/NotifyException.php index ef9a44101..307916db7 100644 --- a/app/Exceptions/NotifyException.php +++ b/app/Exceptions/NotifyException.php @@ -9,26 +9,38 @@ class NotifyException extends Exception implements Responsable { public $message; public $redirectLocation; + protected $status; - /** - * NotifyException constructor. - */ - public function __construct(string $message, string $redirectLocation = '/') + public function __construct(string $message, string $redirectLocation = '/', int $status = 500) { $this->message = $message; $this->redirectLocation = $redirectLocation; + $this->status = $status; parent::__construct(); } + /** + * Get the desired status code for this exception. + */ + public function getStatus(): int + { + return $this->status; + } + /** * Send the response for this type of exception. * - * @inheritdoc + * {@inheritdoc} */ public function toResponse($request) { $message = $this->getMessage(); + // Front-end JSON handling. API-side handling managed via handler. + if ($request->wantsJson()) { + return response()->json(['error' => $message], 403); + } + if (!empty($message)) { session()->flash('error', $message); }