7
7
use Abrouter \Client \Contracts \TaskContract ;
8
8
use Abrouter \Client \DB \Managers \RelatedUsersCacheManager ;
9
9
use Abrouter \Client \DB \RelatedUsersStore ;
10
+ use Abrouter \Client \DB \Repositories \RelatedUsersCacheRepository ;
10
11
use Abrouter \Client \Events \HandlerInterface ;
11
12
use Abrouter \Client \Services \ExperimentsParallelRun \ParallelRunSwitch ;
12
13
use Abrouter \Client \Services \Statistics \SendEventTask ;
@@ -19,14 +20,18 @@ class RelatedUsersStatisticsInterceptor implements HandlerInterface
19
20
20
21
private RelatedUsersCacheManager $ relatedUsersCacheManager ;
21
22
23
+ private RelatedUsersCacheRepository $ relatedUsersCacheRepository ;
24
+
22
25
public function __construct (
23
26
ParallelRunSwitch $ parallelRunSwitch ,
24
27
RelatedUsersStore $ relatedUsersStore ,
25
- RelatedUsersCacheManager $ relatedUsersCacheManager
28
+ RelatedUsersCacheManager $ relatedUsersCacheManager ,
29
+ RelatedUsersCacheRepository $ relatedUsersCacheRepository
26
30
) {
27
31
$ this ->parallelRunSwitch = $ parallelRunSwitch ;
28
32
$ this ->relatedUsersStore = $ relatedUsersStore ;
29
33
$ this ->relatedUsersCacheManager = $ relatedUsersCacheManager ;
34
+ $ this ->relatedUsersCacheRepository = $ relatedUsersCacheRepository ;
30
35
}
31
36
32
37
public function handle (TaskContract $ taskContract ): bool
@@ -42,12 +47,14 @@ public function handle(TaskContract $taskContract): bool
42
47
$ userId = $ taskContract ->getEventDTO ()->getBaseEventDTO ()->getUserId ();
43
48
$ temporaryUserId = $ taskContract ->getEventDTO ()->getBaseEventDTO ()->getTemporaryUserId ();
44
49
50
+ $ this ->relatedUsersStore ::load ($ this ->relatedUsersCacheRepository ->getAll ());
51
+
45
52
$ this ->relatedUsersStore ->get ()->append ($ userId , $ temporaryUserId );
53
+
46
54
$ this ->relatedUsersCacheManager ->store (
47
55
$ this ->relatedUsersStore ->get ()->getAll ()
48
56
);
49
57
50
-
51
58
return true ;
52
59
}
53
60
}
0 commit comments