code = $response->getStatusCode(); $this->headers = $response->getHeaders(); $this->content = json_decode($response->getBody()); } /** * Возвращает заголовки ответа * * @return array */ public function getHeaders(): array { return $this->headers; } /** * Возвращает запрошенный параметр из декодированного объекта результата * * @param $name * @return mixed */ public function __get($name) { return $this->getContent()->$name; } /** * Возвращает код ответа * * @return int */ public function getCode(): int { return $this->code; } /** * Возвращает объект результата запроса * * @return \stdClass */ public function getContent(): stdClass { return $this->content; } /** * Проверяет успешность запроса по соержимому результата * * @return bool */ public function isValid() { return !empty($this->getCode()) && !empty($this->getContent()) && empty($this->getContent()->error) && (int)$this->getCode() < 400; } /** * Возвращает текстовое представление */ public function __toString() { return json_encode($this->jsonSerialize(), JSON_UNESCAPED_UNICODE); } /** * @inheritDoc */ public function jsonSerialize() { return [ 'code' => $this->code, 'headers' => $this->headers, 'body' => $this->content, ]; } }