Plugin fixes
* Added vertical rendering to com.noccy.pdo.shell * Added missing Log classes for com.noccy.apiclient
This commit is contained in:
76
plugins/com.noccy.apiclient/Log/RequestData.php
Normal file
76
plugins/com.noccy.apiclient/Log/RequestData.php
Normal file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace SparkPlug\Com\Noccy\ApiClient\Log;
|
||||
|
||||
use JsonSerializable;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use SparkPlug\Com\Noccy\ApiClient\Log\RequestData as LogRequestData;
|
||||
use SparkPlug\Com\Noccy\ApiClient\Request\Request;
|
||||
|
||||
|
||||
class RequestData implements JsonSerializable
|
||||
{
|
||||
private ?string $method = null;
|
||||
|
||||
private array $params = [];
|
||||
|
||||
private ?int $timestamp = null;
|
||||
|
||||
private ?string $requestUrl = null;
|
||||
|
||||
private array $requestInfo = [];
|
||||
|
||||
private array $requestHeaders = [];
|
||||
|
||||
private ?string $responseBody = null;
|
||||
|
||||
private ?int $responseStatus = null;
|
||||
|
||||
private array $responseHeaders = [];
|
||||
|
||||
public static function fromRequestResponse(Request $request, ResponseInterface $response, ?string $method=null, array $params=[]): RequestData
|
||||
{
|
||||
$rd = new RequestData();
|
||||
$rd->method = $method;
|
||||
$rd->params = $params;
|
||||
$rd->timestamp = time();
|
||||
$rd->requestInfo = $request->getInfo();
|
||||
$rd->requestHeaders = $request->getHeaders();
|
||||
$rd->responseBody = (string)$response->getBody();
|
||||
$rd->responseHeaders = $response->getHeaders();
|
||||
return $rd;
|
||||
}
|
||||
|
||||
public static function fromArray(array $array): RequestData
|
||||
{
|
||||
$rd = new RequestData();
|
||||
$rd->method = $array['method']??'n/a';
|
||||
$rd->params = $array['params']??[];
|
||||
$rd->timestamp = $array['request']['timestamp']??null;
|
||||
$rd->requestInfo = $array['request']['info']??[];
|
||||
$rd->requestHeaders = $array['request']['headers']??[];
|
||||
$rd->responseBody = $array['response']['body']??null;
|
||||
$rd->responseHeaders = $array['response']['headers']??[];
|
||||
return $rd;
|
||||
}
|
||||
|
||||
public function jsonSerialize(): mixed
|
||||
{
|
||||
return [
|
||||
'method' => $this->method,
|
||||
'params' => $this->params,
|
||||
'request' => [
|
||||
'url' => $this->requestUrl,
|
||||
'timestamp' => $this->timestamp,
|
||||
'info' => $this->requestInfo,
|
||||
'headers' => $this->requestHeaders,
|
||||
],
|
||||
'response' => [
|
||||
'status' => $this->responseStatus,
|
||||
'headers' => $this->responseHeaders,
|
||||
'body' => $this->responseBody,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user