2
2
3
3
namespace Tochka \JsonRpc \Middleware ;
4
4
5
+ use Illuminate \Http \Request ;
5
6
use Illuminate \Support \Facades \Log ;
6
7
use Tochka \JsonRpc \Helpers \ArrayHelper ;
7
8
use Tochka \JsonRpc \Helpers \LogHelper ;
8
9
use Tochka \JsonRpc \Support \JsonRpcRequest ;
9
10
10
11
class LogMiddleware
11
12
{
12
- public function handle (JsonRpcRequest $ request , $ next , string $ channel = 'default ' , array $ hideParams = [])
13
- {
13
+ public function handle (
14
+ JsonRpcRequest $ request ,
15
+ $ next ,
16
+ Request $ httpRequest ,
17
+ string $ channel = 'default ' ,
18
+ array $ hideParams = [],
19
+ array $ headers = []
20
+ ) {
14
21
$ logContext = [
15
22
'id ' => $ request ->getId (),
16
23
];
@@ -31,6 +38,10 @@ public function handle(JsonRpcRequest $request, $next, string $channel = 'defaul
31
38
$ rules = array_merge ($ globalRules , $ controllerRules , $ methodRules );
32
39
$ logRequest ['params ' ] = LogHelper::hidePrivateData ((array ) ($ request ->getRawRequest ()->params ?? []), $ rules );
33
40
}
41
+
42
+ if (!empty ($ headers )) {
43
+ $ logContext ['headers ' ] = $ this ->addHeaders ($ httpRequest , $ headers );
44
+ }
34
45
35
46
Log::channel ($ channel )->info ('New request ' , $ logContext + ['request ' => $ logRequest ]);
36
47
@@ -49,4 +60,14 @@ public function handle(JsonRpcRequest $request, $next, string $channel = 'defaul
49
60
50
61
return $ result ;
51
62
}
63
+
64
+ protected function addHeaders (Request $ httpRequest , array $ headers = []): array
65
+ {
66
+ $ result = [];
67
+ foreach ($ headers as $ header ) {
68
+ $ result [$ header ] = $ httpRequest ->header ($ header );
69
+ }
70
+
71
+ return $ result ;
72
+ }
52
73
}
0 commit comments