Respond with the actual error from wings if available; closes #2224
This commit is contained in:
parent
231ff0386c
commit
800b475ec5
1 changed files with 20 additions and 3 deletions
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace Pterodactyl\Exceptions\Http\Connection;
|
namespace Pterodactyl\Exceptions\Http\Connection;
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use GuzzleHttp\Exception\GuzzleException;
|
use GuzzleHttp\Exception\GuzzleException;
|
||||||
use Pterodactyl\Exceptions\DisplayException;
|
use Pterodactyl\Exceptions\DisplayException;
|
||||||
|
@ -28,12 +29,28 @@ class DaemonConnectionException extends DisplayException
|
||||||
$response = method_exists($previous, 'getResponse') ? $previous->getResponse() : null;
|
$response = method_exists($previous, 'getResponse') ? $previous->getResponse() : null;
|
||||||
|
|
||||||
if ($useStatusCode) {
|
if ($useStatusCode) {
|
||||||
$this->statusCode = is_null($response) ? 500 : $response->getStatusCode();
|
$this->statusCode = is_null($response) ? $this->statusCode : $response->getStatusCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::__construct(trans('admin/server.exceptions.daemon_exception', [
|
$message = trans('admin/server.exceptions.daemon_exception', [
|
||||||
'code' => is_null($response) ? 'E_CONN_REFUSED' : $response->getStatusCode(),
|
'code' => is_null($response) ? 'E_CONN_REFUSED' : $response->getStatusCode(),
|
||||||
]), $previous, DisplayException::LEVEL_WARNING);
|
]);
|
||||||
|
|
||||||
|
// Attempt to pull the actual error message off the response and return that if it is not
|
||||||
|
// a 500 level error.
|
||||||
|
if ($this->statusCode < 500 && ! is_null($response)) {
|
||||||
|
$body = $response->getBody();
|
||||||
|
if (is_string($body) || (is_object($body) && method_exists($body, '__toString'))) {
|
||||||
|
$body = json_decode(is_string($body) ? $body : $body->__toString(), true);
|
||||||
|
$message = "[Wings Error]: " . Arr::get($body, 'error', $message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$level = $this->statusCode >= 500 && $this->statusCode !== 504
|
||||||
|
? DisplayException::LEVEL_ERROR
|
||||||
|
: DisplayException::LEVEL_WARNING;
|
||||||
|
|
||||||
|
parent::__construct($message, $previous, $level);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue