@@ -31,6 +31,7 @@ use OpenAPI\Client\ApiException;
31
31
use { {invokerPackage} }\Configuration;
32
32
use OpenAPI\Client\HeaderSelector;
33
33
use OpenAPI\Client\ObjectSerializer;
34
+ use Psr\Log\LoggerInterface;
34
35
35
36
/**
36
37
* { {classname} } Class Doc Comment
@@ -63,21 +64,34 @@ use OpenAPI\Client\ObjectSerializer;
63
64
protected $hostIndex ;
64
65
65
66
/**
66
- * @param ClientInterface $client
67
- * @param Configuration $config
68
- * @param HeaderSelector $selector
69
- * @param int $hostIndex (Optional) host index to select the list of hosts if defined in the OpenAPI spec
67
+ * @var LoggerInterface|null
68
+ */
69
+ private $logger ;
70
+
71
+ /**
72
+ * @param ClientInterface|null $client
73
+ * @param Configuration|null $config
74
+ * @param HeaderSelector|null $selector
75
+ * @param int $hostIndex (Optional) host index to select the list of hosts if defined in the OpenAPI spec
76
+ * @param LoggerInterface|null $logger
70
77
*/
71
78
public function __construct(
72
79
ClientInterface $client = null,
73
80
Configuration $config = null,
74
81
HeaderSelector $selector = null,
75
- $hostIndex = 0
82
+ $hostIndex = 0,
83
+ LoggerInterface $logger = null
76
84
) {
77
85
$this -> client = $client ?: new Client();
78
86
$this -> config = $config ?: Configuration::getDefaultConfiguration();
79
87
$this -> headerSelector = $selector ?: new HeaderSelector();
80
88
$this -> hostIndex = $hostIndex ;
89
+ $this -> logger = $logger ;
90
+ }
91
+
92
+ public function setLogger(LoggerInterface $logger): void
93
+ {
94
+ $this -> logger = $logger ;
81
95
}
82
96
83
97
/**
@@ -189,15 +203,32 @@ use OpenAPI\Client\ObjectSerializer;
189
203
{
190
204
$request = $this -> {{operationId} }Request({ {^vendorExtensions.x-group-parameters} }{ {#allParams} }${ {paramName} }{ {#hasMore} }, { {/hasMore} }{ {/allParams} }{ {/vendorExtensions.x-group-parameters} }{ {#vendorExtensions.x-group-parameters} }$associative_array{ {/vendorExtensions.x-group-parameters} });
191
205
206
+ $this->log('info', 'Openapi send request.', [
207
+ 'requestBody' => (string)$request->getBody(),
208
+ 'requestUri' => (string)$request->getUri()
209
+ ]);
210
+
192
211
try {
193
212
$options = $this -> createHttpClientOption ();
194
213
try {
195
214
$response = $this -> client -> send ($request , $options );
215
+
216
+ $this -> log (' info' , ' Openapi response successfully received.' , [
217
+ ' class' => self::class,
218
+ ' responseBody' => (string)$response -> getBody (),
219
+ ' responseStatusCode' => $response -> getStatusCode ()
220
+ ]);
196
221
} catch (RequestException $e) {
197
222
if (! $e -> hasResponse ()) {
198
223
throw $e ;
199
224
}
200
225
$response = $e->getResponse();
226
+
227
+ $this->log('info', 'Openapi not 2xx response received.', [
228
+ 'class' => self::class,
229
+ 'responseBody' => (string)$response->getBody(),
230
+ 'responseStatusCode' => $response->getStatusCode()
231
+ ]);
201
232
}
202
233
203
234
$statusCode = $response->getStatusCode();
@@ -667,5 +698,12 @@ use OpenAPI\Client\ObjectSerializer;
667
698
];
668
699
}
669
700
}
701
+
702
+ protected function log(string $level, string $message, array $context): void
703
+ {
704
+ if ($this -> logger ) {
705
+ $this -> logger -> log ($level , $message , $context );
706
+ }
707
+ }
670
708
}
671
709
{ {/operations} }
0 commit comments