From 3dae69565c2d3658bfd0e25f10b07df04b4b0059 Mon Sep 17 00:00:00 2001 From: Quentin Gabriele Date: Mon, 11 Nov 2024 13:20:55 +0100 Subject: [PATCH] better middleware --- src/CaptureReferrerMiddleware.php | 44 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/src/CaptureReferrerMiddleware.php b/src/CaptureReferrerMiddleware.php index 96b960c..0a9caf4 100644 --- a/src/CaptureReferrerMiddleware.php +++ b/src/CaptureReferrerMiddleware.php @@ -16,36 +16,34 @@ class CaptureReferrerMiddleware */ public function handle(Request $request, Closure $next): Response { - $sources = $this->getReferrerBySource($request); + $sources = Referrer::getSources(); - if ($sources->count()) { - Referrer::put($sources); - } - - return $next($request); - } - - public function getReferrerBySource(Request $request): ReferrerSources - { - $items = Referrer::getSources(); - - $sources = Referrer::getSourcesFromConfig(); + $updated = false; - foreach ($sources as $sourceName) { + foreach (Referrer::getSourcesFromConfig() as $sourceName) { $strategy = Referrer::getStrategy($sourceName); $source = $sourceName::fromRequest($request); - if ( - $source->isNotEmpty() && - ! $items->has($source) - ) { - $items->put( - source: $source, - strategy: $strategy - ); + if ($source->isEmpty()) { + continue; } + + if ($sources->has($source)) { + continue; + } + + $sources->put( + source: $source, + strategy: $strategy + ); + + $updated = true; } - return $items; + if ($updated) { + Referrer::put($sources); + } + + return $next($request); } }