mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 13:35:54 +00:00
wip
This commit is contained in:
@@ -7,7 +7,9 @@ use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Str;
|
||||
use Laminas\Http\Request;
|
||||
use Laminas\Http\Response;
|
||||
use Namshi\Cuzzle\Formatter\CurlFormatter;
|
||||
use Riverline\MultiPartParser\StreamedPart;
|
||||
use function GuzzleHttp\Psr7\parse_request;
|
||||
|
||||
class LoggedRequest implements \JsonSerializable
|
||||
{
|
||||
@@ -35,12 +37,15 @@ class LoggedRequest implements \JsonSerializable
|
||||
/** @var string */
|
||||
protected $subdomain;
|
||||
|
||||
/** @var array */
|
||||
protected $additionalData = [];
|
||||
|
||||
public function __construct(string $rawRequest, Request $parsedRequest)
|
||||
{
|
||||
$this->id = (string)Str::uuid();
|
||||
$this->startTime = now();
|
||||
$this->rawRequest = $rawRequest;
|
||||
$this->parsedRequest = $parsedRequest;
|
||||
$this->id = $this->getRequestId();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,6 +66,8 @@ class LoggedRequest implements \JsonSerializable
|
||||
'body' => $this->isBinary($this->rawRequest) ? 'BINARY' : $this->parsedRequest->getContent(),
|
||||
'query' => $this->parsedRequest->getQuery()->toArray(),
|
||||
'post' => $this->getPost(),
|
||||
'curl' => (new CurlFormatter())->format(parse_request($this->rawRequest)),
|
||||
'additional_data' => $this->additionalData,
|
||||
],
|
||||
];
|
||||
|
||||
@@ -77,6 +84,11 @@ class LoggedRequest implements \JsonSerializable
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function setAdditionalData(array $data)
|
||||
{
|
||||
$this->additionalData = array_merge($this->additionalData, $data);
|
||||
}
|
||||
|
||||
protected function isBinary(string $string): bool
|
||||
{
|
||||
return preg_match('~[^\x20-\x7E\t\r\n]~', $string) > 0;
|
||||
@@ -174,4 +186,9 @@ class LoggedRequest implements \JsonSerializable
|
||||
{
|
||||
return Arr::get($this->parsedRequest->getHeaders()->toArray(), 'X-Original-Host');
|
||||
}
|
||||
|
||||
protected function getRequestId()
|
||||
{
|
||||
return Arr::get($this->parsedRequest->getHeaders()->toArray(), 'X-Expose-Request-ID', (string)Str::uuid());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user