44
55use Psr \Http \Message \RequestInterface ;
66use Psr \Http \Message \ResponseInterface ;
7- use Scrapegraphai \ Core \ Util ;
7+ use Psr \ Http \ Message \ StreamInterface ;
88
99class APIStatusError extends APIError
1010{
@@ -14,23 +14,26 @@ class APIStatusError extends APIError
1414 public ?int $ status ;
1515
1616 public function __construct (
17- public mixed $ body ,
1817 public RequestInterface $ request ,
1918 ResponseInterface $ response ,
2019 ?\Throwable $ previous = null ,
2120 string $ message = '' ,
2221 ) {
2322 $ this ->response = $ response ;
2423 $ this ->status = $ response ->getStatusCode ();
25- $ message |= json_encode (
26- ['status ' => $ this ->status , 'body ' => $ body ],
27- flags: Util::JSON_ENCODE_FLAGS ,
28- );
29- parent ::__construct (request: $ request , message: $ message , previous: $ previous );
24+
25+ $ summary = 'Status: ' .$ this ->status .PHP_EOL
26+ .'Response Body: ' .self ::fmtBody ($ response ->getBody ()).PHP_EOL
27+ .'Request Body: ' .self ::fmtBody ($ request ->getBody ()).PHP_EOL ;
28+
29+ if ('' != $ message ) {
30+ $ summary .= $ message .PHP_EOL .$ summary ;
31+ }
32+
33+ parent ::__construct (request: $ request , message: $ summary , previous: $ previous );
3034 }
3135
3236 public static function from (
33- mixed $ body ,
3437 RequestInterface $ request ,
3538 ResponseInterface $ response
3639 ): self {
@@ -48,6 +51,11 @@ public static function from(
4851 default => APIStatusError::class
4952 };
5053
51- return new $ cls (body: $ body , request: $ request , response: $ response );
54+ return new $ cls (request: $ request , response: $ response );
55+ }
56+
57+ private static function fmtBody (StreamInterface $ body ): string
58+ {
59+ return json_encode (json_decode ($ body ->__toString () ?: '' ), JSON_PRETTY_PRINT ) ?: '' ;
5260 }
5361}
0 commit comments