Skip to content

Commit 8b340f8

Browse files
### 0.3.2 - Response and Request handler can now be defined as a class member
1 parent ead444c commit 8b340f8

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,5 @@
8888
- Added way to add Request and Response Handler functions from constructor paramters ('settings.requestHandler' && 'settings.responseHandler').
8989

9090
### 0.3.1 - Logger Handler fix
91+
92+
### 0.3.2 - Response and Request handler can now be defined as a class member

src/support/forge/api/Traits/Client/Stackables.php

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,38 +16,46 @@ trait Stackables
1616

1717
private $loggerFile = 'webapi-logs.log';
1818

19-
protected function getStacks($config) {
19+
protected function getStacks($config)
20+
{
2021

2122
$stack = HandlerStack::create();
2223

23-
if(!empty($config['settings']['requestHandler'])) {
24+
if (!empty($config['settings']['requestHandler'])) {
2425
$request = $this->getRequestStack($config['settings']['requestHandler']);
2526
$stack->push($request);
2627
}
28+
if (is_callable(static::requestHandler)) {
29+
$stack->push($this->getRequestStack(static::requestHandler));
30+
}
2731

28-
if(!empty($config['settings']['responseHandler'])) {
32+
if (!empty($config['settings']['responseHandler'])) {
2933
$response = $this->getResponseStack($config['settings']['responseHandler']);
3034
$stack->push($response);
31-
}
35+
}
36+
if (is_callable(static::responseHandler)) {
37+
$stack->push($this->getResponseStack(static::responseHandler));
38+
}
3239

33-
if ($config['log'] !== false) {
40+
if ($config['log'] !== false) {
3441
$logger = $this->getLoggerStack($config['log'] ?? null);
3542
$stack->push($logger);
36-
}
43+
}
3744

3845
return $stack;
3946

4047
}
48+
4149
protected function getLoggerStack($loggerSettings)
4250
{
43-
$logger = $loggerSettings['logger'] ?? null;
44-
$loggerFormat = $loggerSettings['format'] ?? "\r\n[{method} {uri} HTTP/{version}] \r\n{req_body} " .
45-
"\r\nRESPONSE: \r\nCODE: {code} \r\n-----------\r\n{res_body}\r\n------------";
51+
$logger = $loggerSettings['logger'] ?? null;
52+
$loggerFormat = $loggerSettings['format'] ?? "\r\n[{method} {uri} HTTP/{version}] \r\n{req_body} " .
53+
"\r\nRESPONSE: \r\nCODE: {code} \r\n-----------\r\n{res_body}\r\n------------";
4654

4755
if (!($logger instanceof Logger)) {
4856
$logger = new Logger($loggerSettings['name'] ?? $this->loggerName ?? 'API');
4957
$logger->pushHandler(new RotatingFileHandler($loggerSettings['file'] ??
50-
$this->loggerFile ?? (__DIR__. '/webapi-logs.log')));
58+
$this->loggerFile ?? (__DIR__ . '/webapi-logs.log')));
5159
}
5260

5361
return Middleware::log($logger, new MessageFormatter($loggerFormat));
@@ -63,6 +71,7 @@ protected function getRequestStack($stackFunction)
6371
return $request;
6472
});
6573
}
74+
6675
protected function getResponseStack($stackFunction)
6776
{
6877
return Middleware::mapResponse(function (ResponseInterface $response) use ($stackFunction) {

0 commit comments

Comments
 (0)