%PDF- %PDF-
Direktori : /var/www/html/hr/api/vendor/laravel/framework/src/Illuminate/Http/Client/ |
Current File : /var/www/html/hr/api/vendor/laravel/framework/src/Illuminate/Http/Client/Response.php |
<?php namespace Illuminate\Http\Client; use ArrayAccess; use Illuminate\Support\Traits\Macroable; use LogicException; class Response implements ArrayAccess { use Macroable { __call as macroCall; } /** * The underlying PSR response. * * @var \Psr\Http\Message\ResponseInterface */ protected $response; /** * The decoded JSON response. * * @var array */ protected $decoded; /** * Create a new response instance. * * @param \Psr\Http\Message\MessageInterface $response * @return void */ public function __construct($response) { $this->response = $response; } /** * Get the body of the response. * * @return string */ public function body() { return (string) $this->response->getBody(); } /** * Get the JSON decoded body of the response. * * @return array */ public function json() { if (! $this->decoded) { $this->decoded = json_decode((string) $this->response->getBody(), true); } return $this->decoded; } /** * Get a header from the response. * * @param string $header * @return string */ public function header(string $header) { return $this->response->getHeaderLine($header); } /** * Get the headers from the response. * * @return array */ public function headers() { return collect($this->response->getHeaders())->mapWithKeys(function ($v, $k) { return [$k => $v]; })->all(); } /** * Get the status code of the response. * * @return int */ public function status() { return (int) $this->response->getStatusCode(); } /** * Get the effective URI of the response. * * @return \Psr\Http\Message\UriInterface */ public function effectiveUri() { return $this->transferStats->getEffectiveUri(); } /** * Determine if the request was successful. * * @return bool */ public function successful() { return $this->status() >= 200 && $this->status() < 300; } /** * Determine if the response code was "OK". * * @return bool */ public function ok() { return $this->status() === 200; } /** * Determine if the response was a redirect. * * @return bool */ public function redirect() { return $this->status() >= 300 && $this->status() < 400; } /** * Determine if the response indicates a client error occurred. * * @return bool */ public function clientError() { return $this->status() >= 400 && $this->status() < 500; } /** * Determine if the response indicates a server error occurred. * * @return bool */ public function serverError() { return $this->status() >= 500; } /** * Get the response cookies. * * @return array */ public function cookies() { return $this->cookies; } /** * Get the underlying PSR response for the response. * * @return \Psr\Http\Message\ResponseInterface */ public function toPsrResponse() { return $this->response; } /** * Throw an exception if a server or client error occurred. * * @return $this * * @throws \Illuminate\Http\Client\RequestException */ public function throw() { if ($this->serverError() || $this->clientError()) { throw new RequestException($this); } return $this; } /** * Determine if the given offset exists. * * @param string $offset * @return bool */ public function offsetExists($offset) { return isset($this->json()[$offset]); } /** * Get the value for a given offset. * * @param string $offset * @return mixed */ public function offsetGet($offset) { return $this->json()[$offset]; } /** * Set the value at the given offset. * * @param string $offset * @param mixed $value * @return void * * @throws \LogicException */ public function offsetSet($offset, $value) { throw new LogicException('Response data may not be mutated using array access.'); } /** * Unset the value at the given offset. * * @param string $offset * @return void * * @throws \LogicException */ public function offsetUnset($offset) { throw new LogicException('Response data may not be mutated using array access.'); } /** * Get the body of the response. * * @return string */ public function __toString() { return $this->body(); } /** * Dynamically proxy other methods to the underlying response. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return static::hasMacro($method) ? $this->macroCall($method, $parameters) : $this->response->{$method}(...$parameters); } }