File tree Expand file tree Collapse file tree 5 files changed +67
-6
lines changed Expand file tree Collapse file tree 5 files changed +67
-6
lines changed Original file line number Diff line number Diff line change 38
38
"orchestra/testbench" : " ^8.8" ,
39
39
"pestphp/pest" : " ^2.20" ,
40
40
"pestphp/pest-plugin-arch" : " ^2.0" ,
41
- "pestphp/pest-plugin-laravel" : " ^2.0"
41
+ "pestphp/pest-plugin-laravel" : " ^2.0" ,
42
+ "saloonphp/laravel-http-sender" : " ^2.0" ,
43
+ "saloonphp/laravel-plugin" : " ^3.0"
44
+ },
45
+ "suggest" : {
46
+ "saloonphp/laravel-plugin" : " To support logging of Saloon events (^3.0)"
42
47
},
43
48
"autoload" : {
44
49
"psr-4" : {
Original file line number Diff line number Diff line change 6
6
use Illuminate \Http \Client \Events \RequestSending ;
7
7
use Illuminate \Support \Facades \Log ;
8
8
use Onlime \LaravelHttpClientGlobalLogger \HttpClientLogger ;
9
+ use Onlime \LaravelHttpClientGlobalLogger \SaloonHelper ;
9
10
use Psr \Http \Message \RequestInterface ;
11
+ use Saloon \Laravel \Events \SendingSaloonRequest ;
10
12
11
13
class LogRequestSending
12
14
{
13
15
/**
14
16
* Handle the event if the middleware was not added manually.
15
17
*/
16
- public function handle (RequestSending $ event ): void
18
+ public function handle (RequestSending | SendingSaloonRequest $ event ): void
17
19
{
18
20
if (! HttpClientLogger::requestMiddlewareWasAdded ()) {
19
21
$ this ->handleEvent ($ event );
@@ -23,10 +25,17 @@ public function handle(RequestSending $event): void
23
25
/**
24
26
* Handle the event.
25
27
*/
26
- public function handleEvent (RequestSending $ event ): void
28
+ public function handleEvent (RequestSending | SendingSaloonRequest $ event ): void
27
29
{
30
+ if (! SaloonHelper::shouldBeLogged ($ event )) {
31
+ return ;
32
+ }
33
+
34
+ $ psrRequest = $ event instanceof RequestSending
35
+ ? $ event ->request ->toPsrRequest ()
36
+ : $ event ->pendingRequest ->createPsrRequest ();
37
+
28
38
$ obfuscate = config ('http-client-global-logger.obfuscate.enabled ' );
29
- $ psrRequest = $ event ->request ->toPsrRequest ();
30
39
31
40
if ($ obfuscate ) {
32
41
$ psrRequest = $ this ->obfuscateHeaders ($ psrRequest );
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 ;
9
+ use Saloon \Laravel \Events \SentSaloonRequest ;
8
10
9
11
class LogResponseReceived
10
12
{
@@ -13,11 +15,24 @@ class LogResponseReceived
13
15
*
14
16
* @return void
15
17
*/
16
- public function handle (ResponseReceived $ event )
18
+ public function handle (ResponseReceived | SentSaloonRequest $ event )
17
19
{
20
+ if (! SaloonHelper::shouldBeLogged ($ event )) {
21
+ return ;
22
+ }
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
+
18
32
$ formatter = new MessageFormatter (config ('http-client-global-logger.format.response ' ));
19
33
Log::channel (config ('http-client-global-logger.channel ' ))->info ($ formatter ->format (
20
- $ event ->request ->toPsrRequest (), $ event ->response ->toPsrResponse ()
34
+ $ psrRequest ,
35
+ $ psrResponse
21
36
));
22
37
}
23
38
}
Original file line number Diff line number Diff line change 7
7
use Illuminate \Http \Client \Events \ResponseReceived ;
8
8
use Onlime \LaravelHttpClientGlobalLogger \Listeners \LogRequestSending ;
9
9
use Onlime \LaravelHttpClientGlobalLogger \Listeners \LogResponseReceived ;
10
+ use Saloon \Laravel \Events \SendingSaloonRequest ;
11
+ use Saloon \Laravel \Events \SentSaloonRequest ;
10
12
11
13
class EventServiceProvider extends BaseEventServiceProvider
12
14
{
@@ -16,12 +18,21 @@ class EventServiceProvider extends BaseEventServiceProvider
16
18
* @var array
17
19
*/
18
20
protected $ listen = [
21
+ // Laravel HTTP Client
19
22
RequestSending::class => [
20
23
LogRequestSending::class,
21
24
],
22
25
ResponseReceived::class => [
23
26
LogResponseReceived::class,
24
27
],
28
+
29
+ // Saloon
30
+ SendingSaloonRequest::class => [
31
+ LogRequestSending::class,
32
+ ],
33
+ SentSaloonRequest::class => [
34
+ LogResponseReceived::class,
35
+ ],
25
36
];
26
37
27
38
/**
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Onlime \LaravelHttpClientGlobalLogger ;
4
+
5
+ use Saloon \HttpSender \HttpSender ;
6
+ use Saloon \Laravel \Events \SendingSaloonRequest ;
7
+ use Saloon \Laravel \Events \SentSaloonRequest ;
8
+
9
+ class SaloonHelper
10
+ {
11
+ public static function shouldBeLogged ($ event ): bool
12
+ {
13
+ if ($ event instanceof SendingSaloonRequest || $ event instanceof SentSaloonRequest) {
14
+ $ saloonUsesHttpSender = config ('saloon.default_sender ' ) === HttpSender::class;
15
+
16
+ return $ event ->pendingRequest ->hasMockClient () || ! $ saloonUsesHttpSender ;
17
+ }
18
+
19
+ return true ;
20
+ }
21
+ }
You can’t perform that action at this time.
0 commit comments