File tree 5 files changed +42
-6
lines changed
5 files changed +42
-6
lines changed Original file line number Diff line number Diff line change @@ -13,11 +13,15 @@ class ClientRequestIdMiddleware
13
13
* Handle an incoming request.
14
14
*
15
15
* @param \Illuminate\Http\Request $request
16
- * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse ) $next
17
- * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
16
+ * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response ) $next
17
+ * @return \Symfony\Component\HttpFoundation\Response
18
18
*/
19
19
public function handle (Request $ request , Closure $ next ): Response
20
20
{
21
- return $ next ($ request )->header (CorrelationIdServiceProvider::getClientRequestIdHeaderName (), $ request ->getClientRequestId ());
21
+ $ response = $ next ($ request );
22
+
23
+ $ response ->headers ->set (CorrelationIdServiceProvider::getClientRequestIdHeaderName (), $ request ->getClientRequestId ());
24
+
25
+ return $ response ;
22
26
}
23
27
}
Original file line number Diff line number Diff line change @@ -14,16 +14,20 @@ class CorrelationIdMiddleware
14
14
* Handle an incoming request.
15
15
*
16
16
* @param \Illuminate\Http\Request $request
17
- * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse ) $next
18
- * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
17
+ * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response ) $next
18
+ * @return \Symfony\Component\HttpFoundation\Response
19
19
*/
20
20
public function handle (Request $ request , Closure $ next ): Response
21
21
{
22
22
if ($ this ->shouldOverride ($ request ) || ! $ request ->hasHeader (CorrelationIdServiceProvider::getCorrelationIdHeaderName ())) {
23
23
$ request ->headers ->set (CorrelationIdServiceProvider::getCorrelationIdHeaderName (), $ this ->generateCorrelationId ($ request ));
24
24
}
25
25
26
- return $ next ($ request )->header (CorrelationIdServiceProvider::getCorrelationIdHeaderName (), $ request ->getCorrelationId ());
26
+ $ response = $ next ($ request );
27
+
28
+ $ response ->headers ->set (CorrelationIdServiceProvider::getCorrelationIdHeaderName (), $ request ->getCorrelationId ());
29
+
30
+ return $ response ;
27
31
}
28
32
29
33
protected function generateCorrelationId (Request $ request ): string
Original file line number Diff line number Diff line change 7
7
use Illuminate \Http \Request ;
8
8
use Illuminate \Http \Response ;
9
9
use Illuminate \Support \Str ;
10
+ use Symfony \Component \HttpFoundation \BinaryFileResponse ;
10
11
11
12
class ClientRequestIdMiddlewareTest extends TestCase
12
13
{
@@ -24,4 +25,18 @@ public function test_adds_request_id_to_response_header(): void
24
25
$ this ->assertTrue ($ response ->headers ->has ('Request-ID ' ));
25
26
$ this ->assertEquals ($ uuid , $ response ->headers ->get ('Request-ID ' ));
26
27
}
28
+
29
+ public function test_works_with_binary_file_response (): void
30
+ {
31
+ $ uuid = Str::orderedUuid ();
32
+
33
+ $ request = new Request ();
34
+ $ request ->headers ->set ('Request-ID ' , $ uuid );
35
+ $ response = (new ClientRequestIdMiddleware ())->handle ($ request , function ($ request ) {
36
+ return new BinaryFileResponse (__DIR__ .'/../fixtures/dummy.pdf ' );
37
+ });
38
+
39
+ $ this ->assertTrue ($ response ->headers ->has ('Request-ID ' ));
40
+ $ this ->assertEquals ($ uuid , $ response ->headers ->get ('Request-ID ' ));
41
+ }
27
42
}
Original file line number Diff line number Diff line change 7
7
use Illuminate \Http \Request ;
8
8
use Illuminate \Http \Response ;
9
9
use Illuminate \Support \Str ;
10
+ use Symfony \Component \HttpFoundation \BinaryFileResponse ;
10
11
11
12
class CorrelationIdMiddlewareTest extends TestCase
12
13
{
@@ -36,4 +37,16 @@ public function test_adds_response_correlation_id_header(): void
36
37
$ this ->assertTrue ($ response ->headers ->has ('Correlation-ID ' ));
37
38
$ this ->assertEquals ($ response ->headers ->get ('Correlation-ID ' ), $ request ->header ('Correlation-ID ' ));
38
39
}
40
+
41
+ public function test_works_with_binary_file_response (): void
42
+ {
43
+ $ request = new Request ();
44
+
45
+ $ response = (new CorrelationIdMiddleware ())->handle ($ request , function ($ request ) {
46
+ return new BinaryFileResponse (__DIR__ .'/../fixtures/dummy.pdf ' );
47
+ });
48
+
49
+ $ this ->assertTrue ($ response ->headers ->has ('Correlation-ID ' ));
50
+ $ this ->assertEquals ($ response ->headers ->get ('Correlation-ID ' ), $ request ->header ('Correlation-ID ' ));
51
+ }
39
52
}
You can’t perform that action at this time.
0 commit comments