66
77use Abrouter \Client \Events \EventDispatcher ;
88use Abrouter \Client \DTO \EventDTOInterface ;
9+ use Abrouter \Client \Events \Handlers \RelatedUsersStatisticsInterceptor ;
910use Abrouter \Client \Services \ExperimentsParallelRun \ParallelRunSwitch ;
1011use Abrouter \Client \Services \Statistics \SendEventTask ;
1112
@@ -15,21 +16,34 @@ class StatisticsManager
1516
1617 private ParallelRunSwitch $ parallelRunSwitch ;
1718
19+ private RelatedUsersStatisticsInterceptor $ relatedUsersStatisticsInterceptor ;
20+
1821 /**
1922 * @param EventDispatcher $eventDispatcher
2023 * @param ParallelRunSwitch $parallelRunSwitch
24+ * @param RelatedUsersStatisticsInterceptor $relatedUsersStatisticsInterceptor
2125 */
22- public function __construct (EventDispatcher $ eventDispatcher , ParallelRunSwitch $ parallelRunSwitch )
23- {
26+ public function __construct (
27+ EventDispatcher $ eventDispatcher ,
28+ ParallelRunSwitch $ parallelRunSwitch ,
29+ RelatedUsersStatisticsInterceptor $ relatedUsersStatisticsInterceptor
30+ ) {
2431 $ this ->eventDispatcher = $ eventDispatcher ;
2532 $ this ->parallelRunSwitch = $ parallelRunSwitch ;
33+ $ this ->relatedUsersStatisticsInterceptor = $ relatedUsersStatisticsInterceptor ;
2634 }
2735
2836 public function sendEvent (EventDTOInterface $ eventDTO ): void
2937 {
38+ $ task = new SendEventTask ($ eventDTO );
39+ $ isParallelRunningEnabled = $ this ->parallelRunSwitch ->isEnabled ();
40+ if ($ isParallelRunningEnabled ) {
41+ $ this ->relatedUsersStatisticsInterceptor ->handle ($ task );
42+ }
43+
3044 $ this ->eventDispatcher ->dispatch (
31- new SendEventTask ( $ eventDTO ) ,
32- $ this -> parallelRunSwitch -> isEnabled ()
45+ $ task ,
46+ $ isParallelRunningEnabled
3347 );
3448 }
3549}
0 commit comments