@@ -51,18 +51,19 @@ public function __invoke(TrackMessage $message): void
5151 // Bulk tracking payload: enrich each request; do NOT also put params on URL
5252 try {
5353 $ parameter = $ this ->enrichRequests ($ parameter , $ commonParameters );
54- } catch (\JsonException $ exception ) {
55- $ this ->logger ->error ('Error enriching request. ' , [
56- 'parameter ' => $ parameter ,
57- 'commonParameters ' => $ commonParameters ,
58- 'message ' => $ exception ->getMessage (),
59- ]);
54+ } catch (\JsonException ) {
55+ parse_str ($ parameter , $ parsedQuery );
56+ if ($ parsedQuery !== []) {
57+ $ parameter = $ parsedQuery ;
58+ }
6059 }
6160
6261 $ data = [
6362 'body ' => $ parameter ,
6463 ];
65- } else {
64+ }
65+
66+ if (\is_array ($ parameter )) {
6667 $ merged = array_merge ($ parameter , $ commonParameters );
6768 // Remove empty-string values to avoid invalid parameters like _id=""
6869 $ merged = array_filter ($ merged , static function ($ v ) {
@@ -74,6 +75,14 @@ public function __invoke(TrackMessage $message): void
7475 ];
7576 }
7677
78+ if (!isset ($ data )) {
79+ $ this ->logger ->error ('Parameters for Matomo tracking could not be handled. ' , [
80+ 'parameters ' => $ message ->parameters ,
81+ ]);
82+
83+ throw new \RuntimeException ('Parameters for Matomo tracking could not be handled. ' );
84+ }
85+
7786 $ client = new Client ();
7887
7988 // Build headers and set JSON content type when sending bulk payload
0 commit comments