File tree Expand file tree Collapse file tree 4 files changed +51
-38
lines changed Expand file tree Collapse file tree 4 files changed +51
-38
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Onlime \LaravelHttpClientGlobalLogger ;
4
+
5
+ use Exception ;
6
+ use Illuminate \Http \Client \Events \RequestSending ;
7
+ use Illuminate \Http \Client \Events \ResponseReceived ;
8
+ use Psr \Http \Message \RequestInterface ;
9
+ use Psr \Http \Message \ResponseInterface ;
10
+ use Saloon \HttpSender \HttpSender ;
11
+ use Saloon \Laravel \Events \SendingSaloonRequest ;
12
+ use Saloon \Laravel \Events \SentSaloonRequest ;
13
+
14
+ class EventHelper
15
+ {
16
+ public static function shouldBeLogged ($ event ): bool
17
+ {
18
+ if ($ event instanceof SendingSaloonRequest || $ event instanceof SentSaloonRequest) {
19
+ $ saloonUsesHttpSender = config ('saloon.default_sender ' ) === HttpSender::class;
20
+
21
+ return $ event ->pendingRequest ->hasMockClient () || ! $ saloonUsesHttpSender ;
22
+ }
23
+
24
+ return true ;
25
+ }
26
+
27
+ public static function getPsrRequest ($ event ): RequestInterface
28
+ {
29
+ return match (true ) {
30
+ $ event instanceof RequestSending || $ event instanceof ResponseReceived => $ event ->request ->toPsrRequest (),
31
+ $ event instanceof SendingSaloonRequest || $ event instanceof SentSaloonRequest => $ event ->pendingRequest ->createPsrRequest (),
32
+ default => throw new Exception ('Can not get PSR Request from Event: ' .get_class ($ event )),
33
+ };
34
+ }
35
+
36
+ public static function getPsrResponse ($ event ): ResponseInterface
37
+ {
38
+ return match (true ) {
39
+ $ event instanceof ResponseReceived => $ event ->response ->toPsrResponse (),
40
+ $ event instanceof SentSaloonRequest => $ event ->response ->getPsrResponse (),
41
+ default => throw new Exception ('Can not get PSR Response from Event: ' .get_class ($ event )),
42
+ };
43
+ }
44
+ }
Original file line number Diff line number Diff line change 5
5
use GuzzleHttp \MessageFormatter ;
6
6
use Illuminate \Http \Client \Events \RequestSending ;
7
7
use Illuminate \Support \Facades \Log ;
8
+ use Onlime \LaravelHttpClientGlobalLogger \EventHelper ;
8
9
use Onlime \LaravelHttpClientGlobalLogger \HttpClientLogger ;
9
- use Onlime \LaravelHttpClientGlobalLogger \SaloonHelper ;
10
10
use Psr \Http \Message \RequestInterface ;
11
11
use Saloon \Laravel \Events \SendingSaloonRequest ;
12
12
@@ -27,13 +27,11 @@ public function handle(RequestSending|SendingSaloonRequest $event): void
27
27
*/
28
28
public function handleEvent (RequestSending |SendingSaloonRequest $ event ): void
29
29
{
30
- if (! SaloonHelper ::shouldBeLogged ($ event )) {
30
+ if (! EventHelper ::shouldBeLogged ($ event )) {
31
31
return ;
32
32
}
33
33
34
- $ psrRequest = $ event instanceof RequestSending
35
- ? $ event ->request ->toPsrRequest ()
36
- : $ event ->pendingRequest ->createPsrRequest ();
34
+ $ psrRequest = EventHelper::getPsrRequest ($ event );
37
35
38
36
$ obfuscate = config ('http-client-global-logger.obfuscate.enabled ' );
39
37
Original file line number Diff line number Diff line change 5
5
use GuzzleHttp \MessageFormatter ;
6
6
use Illuminate \Http \Client \Events \ResponseReceived ;
7
7
use Illuminate \Support \Facades \Log ;
8
- use Onlime \LaravelHttpClientGlobalLogger \SaloonHelper ;
8
+ use Onlime \LaravelHttpClientGlobalLogger \EventHelper ;
9
9
use Saloon \Laravel \Events \SentSaloonRequest ;
10
10
11
11
class LogResponseReceived
@@ -17,22 +17,14 @@ class LogResponseReceived
17
17
*/
18
18
public function handle (ResponseReceived |SentSaloonRequest $ event )
19
19
{
20
- if (! SaloonHelper ::shouldBeLogged ($ event )) {
20
+ if (! EventHelper ::shouldBeLogged ($ event )) {
21
21
return ;
22
22
}
23
23
24
- $ psrRequest = $ event instanceof ResponseReceived
25
- ? $ event ->request ->toPsrRequest ()
26
- : $ event ->pendingRequest ->createPsrRequest ();
27
-
28
- $ psrResponse = $ event instanceof ResponseReceived
29
- ? $ event ->response ->toPsrResponse ()
30
- : $ event ->response ->getPsrResponse ();
31
-
32
24
$ formatter = new MessageFormatter (config ('http-client-global-logger.format.response ' ));
33
25
Log::channel (config ('http-client-global-logger.channel ' ))->info ($ formatter ->format (
34
- $ psrRequest ,
35
- $ psrResponse
26
+ EventHelper:: getPsrRequest ( $ event ) ,
27
+ EventHelper:: getPsrResponse ( $ event )
36
28
));
37
29
}
38
30
}
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments