@@ -15,17 +15,21 @@ public function handle(Request $request, Closure $next): mixed
1515 $ user = $ request ->user ();
1616 $ config = config ('initial-event-propagation ' , []);
1717 $ mc = config ('initial-event-propagation.set_initial_event_http_middleware ' , []);
18-
19- $ initialEvent = InitialEventDTO::fromScratch (
20- userId: $ user ? $ user ->getId () : "" ,
21- userType: $ user ? $ mc ['default_user_type ' ] : "" ,
22- app: !empty ($ mc ['app_code_header ' ]) ? $ request ->header ($ mc ['app_code_header ' ]) : ($ config ['app_code ' ] ?? '' ),
23- entrypoint: $ this ->extractEntrypoint ($ request ),
24- correlationId: !empty ($ mc ['correlation_id_header ' ]) ? $ request ->header ($ mc ['correlation_id_header ' ]) : '' ,
25- timestamp: !empty ($ mc ['timestamp_header ' ]) ? $ request ->header ($ mc ['timestamp_header ' ]) : ''
26- );
27-
28- Container::getInstance ()->make (InitialEventHolder::class)->setInitialEvent ($ initialEvent );
18+ $ holder = Container::getInstance ()->make (InitialEventHolder::class);
19+ $ existingEvent = $ holder ->getInitialEvent ();
20+
21+ if (!$ existingEvent || empty ($ mc ['preserve_existing_event ' ])) {
22+ $ initialEvent = InitialEventDTO::fromScratch (
23+ userId: $ user ? $ user ->getId () : "" ,
24+ userType: $ user ? $ mc ['default_user_type ' ] : "" ,
25+ app: !empty ($ mc ['app_code_header ' ]) ? $ request ->header ($ mc ['app_code_header ' ]) : ($ config ['app_code ' ] ?? '' ),
26+ entrypoint: $ this ->extractEntrypoint ($ request ),
27+ correlationId: !empty ($ mc ['correlation_id_header ' ]) ? $ request ->header ($ mc ['correlation_id_header ' ]) : '' ,
28+ timestamp: !empty ($ mc ['timestamp_header ' ]) ? $ request ->header ($ mc ['timestamp_header ' ]) : ''
29+ );
30+
31+ $ holder ->setInitialEvent ($ initialEvent );
32+ }
2933
3034 return $ next ($ request );
3135 }
0 commit comments