From 49ded5104452bf56301aa782823e12537642946b Mon Sep 17 00:00:00 2001
From: Tobias Gross-Vogt <tobias.gross-vogt@tugraz.at>
Date: Mon, 6 Feb 2023 10:38:35 +0100
Subject: [PATCH] localdatapreevent: replace acknowledgeQueryParameter function
 by tryPopPendingQueryParameter

---
 src/LocalData/AbstractLocalDataEventSubscriber.php | 4 ++--
 src/LocalData/LocalDataPreEvent.php                | 8 ++++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/LocalData/AbstractLocalDataEventSubscriber.php b/src/LocalData/AbstractLocalDataEventSubscriber.php
index e309f66..97e971d 100644
--- a/src/LocalData/AbstractLocalDataEventSubscriber.php
+++ b/src/LocalData/AbstractLocalDataEventSubscriber.php
@@ -109,7 +109,7 @@ abstract class AbstractLocalDataEventSubscriber extends AbstractAuthorizationSer
                     }
                     $sourceAttributeName = $attributeMapEntry[self::SOURCE_ATTRIBUTE_KEY];
                     $localQueryParameters[$sourceAttributeName] = $localDataAttributeValue;
-                    $event->acknowledgeQueryParameter($localDataAttributeName);
+                    $event->tryPopPendingQueryParameter($localDataAttributeName);
                 }
             }
 
@@ -182,7 +182,7 @@ abstract class AbstractLocalDataEventSubscriber extends AbstractAuthorizationSer
         throw new \RuntimeException(sprintf('child classes must implement the \'%s\' method', __METHOD__));
     }
 
-    protected function onPreEvent(LocalDataPreEvent $preEvent, array $localQueryParameters)
+    protected function onPreEvent(LocalDataPreEvent $preEvent, array $mappedQueryParameters)
     {
     }
 
diff --git a/src/LocalData/LocalDataPreEvent.php b/src/LocalData/LocalDataPreEvent.php
index d548930..68743c2 100644
--- a/src/LocalData/LocalDataPreEvent.php
+++ b/src/LocalData/LocalDataPreEvent.php
@@ -30,9 +30,13 @@ class LocalDataPreEvent extends Event
         return $this->queryParametersIn;
     }
 
-    public function acknowledgeQueryParameter(string $queryParameterName): void
+    public function tryPopPendingQueryParameter(string $queryParameterName, &$queryParameterValue = null): bool
     {
-        unset($this->queryParametersIn[$queryParameterName]);
+        if (($queryParameterValue = $this->queryParametersIn[$queryParameterName] ?? null) !== null) {
+            unset($this->queryParametersIn[$queryParameterName]);
+        }
+
+        return $queryParameterValue !== null;
     }
 
     public function getOptions(): array
-- 
GitLab