feat: dump request/response for debugging

This commit is contained in:
Björn Fromme
2025-02-06 09:36:40 +01:00
parent e5dc666dcd
commit 243d1b538c
+12 -8
View File
@@ -149,10 +149,7 @@ class ApiClient
;
if (true === $this->config['debug']) {
$this->logger->info('Request sent', [
'id' => $requestId,
'request' => $body,
]);
$this->dumpXmlToFile('request', $requestId, $body);
}
$socket = $this->connect(
@@ -168,15 +165,21 @@ class ApiClient
$xml = substr($response, 10);
if (true === $this->config['debug']) {
$this->logger->info('Response received', [
'id' => $requestId,
'response' => $xml,
]);
$this->dumpXmlToFile('response', $requestId, $xml);
}
return $this->responseParser->parseXmlString($type, $xml);
}
private function dumpXmlToFile(string $type, string $requestId, string $body): void
{
if (false === file_exists($this->config['target_folder_dumps'])) {
mkdir($this->config['target_folder_dumps']);
}
file_put_contents($this->config['target_folder_dumps'].'/'.$requestId.'_'.$type.'.xml', $body);
}
private function createKey(string $username, string $password, string $type): string
{
$date = (new \DateTimeImmutable())->format('Ymd');
@@ -196,6 +199,7 @@ class ApiClient
$optionsResolver->setDefaults([
'max_retries' => 25,
'debug' => false,
'target_folder_dumps' => '/var/www/html/var/bpn',
]);
return $optionsResolver->resolve($options);