This commit is contained in:
Marcel Pociot
2020-04-29 16:49:33 +02:00
parent c2084e6be6
commit 6cf206e0a2
35 changed files with 566 additions and 215 deletions

View File

@@ -32,7 +32,6 @@ class CliRequestLogger extends Logger
public function logRequest(LoggedRequest $loggedRequest)
{
return;
if ($this->requests->has($loggedRequest->id())) {
$this->requests[$loggedRequest->id()] = $loggedRequest;
} else {

View File

@@ -94,6 +94,11 @@ class LoggedRequest implements \JsonSerializable
$this->additionalData = array_merge($this->additionalData, $data);
}
public function getAdditionalData(): array
{
return $this->additionalData;
}
protected function isBinary(string $string): bool
{
return preg_match('~[^\x20-\x7E\t\r\n]~', $string) > 0;
@@ -122,26 +127,21 @@ class LoggedRequest implements \JsonSerializable
}
}
public function id()
public function id(): string
{
return $this->id;
}
public function getRequestData()
public function getRequestData(): ?string
{
return $this->rawRequest;
}
public function getResponse()
public function getResponse(): ?Response
{
return $this->parsedResponse;
}
protected function getResponseBody()
{
return \Laminas\Http\Response::fromString($this->rawResponse)->getBody();
}
protected function getPost()
{
$postData = [];

View File

@@ -19,6 +19,8 @@ class RequestLogger
/** @var CliRequestLogger */
protected $cliRequestLogger;
const MAX_LOGGED_REQUESTS = 10;
public function __construct(Browser $browser, CliRequestLogger $cliRequestLogger)
{
$this->client = $browser;
@@ -32,17 +34,19 @@ class RequestLogger
});
}
public function logRequest(string $rawRequest, Request $request)
public function logRequest(string $rawRequest, Request $request): LoggedRequest
{
$loggedRequest = new LoggedRequest($rawRequest, $request);
array_unshift($this->requests, $loggedRequest);
$this->requests = array_slice($this->requests, 0, 10);
$this->requests = array_slice($this->requests, 0, static::MAX_LOGGED_REQUESTS);
$this->cliRequestLogger->logRequest($loggedRequest);
$this->pushLogs();
return $loggedRequest;
}
public function logResponse(Request $request, string $rawResponse)
@@ -59,7 +63,7 @@ class RequestLogger
}
}
public function getData()
public function getData(): array
{
return $this->requests;
}
@@ -73,6 +77,7 @@ class RequestLogger
public function pushLogs()
{
// TODO: Make dashboard part configurable
$this
->client
->post(