Skip to content

Commit ff8a678

Browse files
committed
Refactored SaloonHelper to EventHelper
1 parent 44819ce commit ff8a678

File tree

4 files changed

+51
-38
lines changed

4 files changed

+51
-38
lines changed

src/EventHelper.php

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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+
}

src/Listeners/LogRequestSending.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
use GuzzleHttp\MessageFormatter;
66
use Illuminate\Http\Client\Events\RequestSending;
77
use Illuminate\Support\Facades\Log;
8+
use Onlime\LaravelHttpClientGlobalLogger\EventHelper;
89
use Onlime\LaravelHttpClientGlobalLogger\HttpClientLogger;
9-
use Onlime\LaravelHttpClientGlobalLogger\SaloonHelper;
1010
use Psr\Http\Message\RequestInterface;
1111
use Saloon\Laravel\Events\SendingSaloonRequest;
1212

@@ -27,13 +27,11 @@ public function handle(RequestSending|SendingSaloonRequest $event): void
2727
*/
2828
public function handleEvent(RequestSending|SendingSaloonRequest $event): void
2929
{
30-
if (! SaloonHelper::shouldBeLogged($event)) {
30+
if (! EventHelper::shouldBeLogged($event)) {
3131
return;
3232
}
3333

34-
$psrRequest = $event instanceof RequestSending
35-
? $event->request->toPsrRequest()
36-
: $event->pendingRequest->createPsrRequest();
34+
$psrRequest = EventHelper::getPsrRequest($event);
3735

3836
$obfuscate = config('http-client-global-logger.obfuscate.enabled');
3937

src/Listeners/LogResponseReceived.php

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use GuzzleHttp\MessageFormatter;
66
use Illuminate\Http\Client\Events\ResponseReceived;
77
use Illuminate\Support\Facades\Log;
8-
use Onlime\LaravelHttpClientGlobalLogger\SaloonHelper;
8+
use Onlime\LaravelHttpClientGlobalLogger\EventHelper;
99
use Saloon\Laravel\Events\SentSaloonRequest;
1010

1111
class LogResponseReceived
@@ -17,22 +17,14 @@ class LogResponseReceived
1717
*/
1818
public function handle(ResponseReceived|SentSaloonRequest $event)
1919
{
20-
if (! SaloonHelper::shouldBeLogged($event)) {
20+
if (! EventHelper::shouldBeLogged($event)) {
2121
return;
2222
}
2323

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-
3224
$formatter = new MessageFormatter(config('http-client-global-logger.format.response'));
3325
Log::channel(config('http-client-global-logger.channel'))->info($formatter->format(
34-
$psrRequest,
35-
$psrResponse
26+
EventHelper::getPsrRequest($event),
27+
EventHelper::getPsrResponse($event)
3628
));
3729
}
3830
}

src/SaloonHelper.php

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)