%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/vendor/meilisearch/meilisearch-php/src/Exceptions/ |
Current File : /home/graphicd/public_html/vebto/vendor/meilisearch/meilisearch-php/src/Exceptions/ApiException.php |
<?php declare(strict_types=1); namespace MeiliSearch\Exceptions; use Exception; use Psr\Http\Message\ResponseInterface; class ApiException extends Exception { public $httpStatus = 0; public $message = null; public $errorCode = null; public $errorType = null; public $errorLink = null; public $httpBody = null; public function __construct(ResponseInterface $response, $httpBody, $previous = null) { $this->httpBody = $httpBody; $this->httpStatus = $response->getStatusCode(); $this->message = $this->getMessageFromHttpBody() ?? $response->getReasonPhrase(); $this->errorCode = $this->getErrorCodeFromHttpBody(); $this->errorLink = $this->getErrorLinkFromHttpBody(); $this->errorType = $this->getErrorTypeFromHttpBody(); parent::__construct($this->message, $this->httpStatus, $previous); } public function __toString() { $base = 'MeiliSearch ApiException: Http Status: '.$this->httpStatus; if ($this->message) { $base .= ' - Message: '.$this->message; } if ($this->errorCode) { $base .= ' - Error code: '.$this->errorCode; } if ($this->errorType) { $base .= ' - Error type: '.$this->errorType; } if ($this->errorLink) { $base .= ' - Error link: '.$this->errorLink; } return $base; } private function getMessageFromHttpBody(): ?string { if (\is_array($this->httpBody) && \array_key_exists('message', $this->httpBody)) { return $this->httpBody['message']; } return null; } private function getErrorCodeFromHttpBody(): ?string { if (\is_array($this->httpBody) && \array_key_exists('errorCode', $this->httpBody)) { return $this->httpBody['errorCode']; } return null; } private function getErrorTypeFromHttpBody(): ?string { if (\is_array($this->httpBody) && \array_key_exists('errorType', $this->httpBody)) { return $this->httpBody['errorType']; } return null; } private function getErrorLinkFromHttpBody(): ?string { if (\is_array($this->httpBody) && \array_key_exists('errorLink', $this->httpBody)) { return $this->httpBody['errorLink']; } return null; } }