Skip to content

Commit 0e16c84

Browse files
committed
Add CorrelationIdMiddleware
1 parent 7d2ddba commit 0e16c84

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ No breaking changes. The only changes are to the development dependencies used f
1010

1111
## Changes
1212

13+
### 2.2.0 - 2023-08-29
14+
15+
- Add middleware for adding 'Correlation-ID' header to responses
16+
1317
### 2.1.0 - 2023-07-24
1418

1519
- Add support for PHP 8.1
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Bilfeldt\RequestLogger\Middleware;
4+
5+
use Closure;
6+
use Illuminate\Http\Request;
7+
8+
class CorrelationIdMiddleware
9+
{
10+
/**
11+
* Handle an incoming request.
12+
*
13+
* @param \Illuminate\Http\Request $request
14+
* @param \Closure $next
15+
* @return mixed
16+
*/
17+
public function handle(Request $request, Closure $next)
18+
{
19+
$response = $next($request);
20+
21+
$response->headers->set('Correlation-ID', $request->getUniqueId(), true); // This is available on all Response types whereas $request->header() is only available in \Illuminate\Http\Response
22+
23+
return $response;
24+
}
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Bilfeldt\RequestLogger\Tests\Unit;
4+
5+
use Bilfeldt\RequestLogger\Middleware\CorrelationIdMiddleware;
6+
use Bilfeldt\RequestLogger\Tests\TestCase;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Http\Response;
9+
10+
class CorrelationIdMiddlewareTest extends TestCase
11+
{
12+
public function test_adds_response_header(): void
13+
{
14+
$this->assertEquals('Correlation-ID', config('request-logger.header'));
15+
16+
$request = new Request();
17+
18+
$response1 = (new CorrelationIdMiddleware())->handle($request, function ($request) {
19+
return new Response();
20+
});
21+
22+
$this->assertTrue($response1->headers->has('Correlation-ID'));
23+
$this->assertEquals($request->getUniqueId(), $response1->headers->get('Correlation-ID'));
24+
}
25+
}

0 commit comments

Comments
 (0)