1<?php 2 3namespace MatrixPhp\Exceptions; 4 5/** 6 * The home server returned an error response. 7 * 8 * @package MatrixPhp\Exceptions 9 */ 10class MatrixRequestException extends MatrixException { 11 12 protected $content; 13 public readonly ?string $errCode; 14 15 public function __construct(int $code = 0, string $content = "") { 16 parent::__construct($content, $code); 17 $this->httpCode = $code; 18 $this->content = $content; 19 try { 20 $decoded = \json_decode($content, TRUE, 512, JSON_THROW_ON_ERROR); 21 $this->errCode = $decoded['errcode'] ?? NULL; 22 } 23 catch (\JsonException) { 24 $this->errCode = NULL; 25 } 26 } 27 28 /** 29 * @return int 30 */ 31 public function getHttpCode(): int { 32 return $this->getCode(); 33 } 34 35 /** 36 * @return string 37 */ 38 public function getContent(): string { 39 return $this->content; 40 } 41} 42