This commit is contained in:
Marcel Pociot
2020-04-16 15:30:53 +02:00
parent e49708b290
commit 2778d5a489
22 changed files with 960 additions and 206 deletions

View File

@@ -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());
}
}