Lines 93.33% 14 / 15
Methods 66.66% 2 / 3
Classes 0.00% 0 / 1
Name Lines Methods CRAP
 __construct 100.00% 1 / 1 100.00% 1 / 1 1
 handledMessageClass 0.00% 0 / 1 0.00% 0 / 1 2
 handle 100.00% 13 / 13 100.00% 1 / 1 1
18final readonly class SubscribeTriggerHandler implements WorkerMessageHandler
19{
20    public function __construct(
21        private SubscriptionRegistry $registry,
22        private LoggerInterface $logger,
23    ) {}
24
25    public function handledMessageClass(): string
26    {
27        return SubscribeTrigger::class;
28    }
29
30    /** @param SubscribeTrigger $message */
31    public function handle(WorkerHandle $handle, WorkerMessage $message): void
32    {
33        $this->registry->add(new BrokerSubscription(
34            subscriptionId: $message->subscriptionId,
35            workerId: $handle->id,
36            scope: $message->scope,
37            kind: SubscriptionKind::Trigger,
38            selector: Selector::exact($message->trigger->getSharingKey()),
39            trigger: $message->trigger,
40        ));
41
42        $handle->send(new SubscriptionAck($message->subscriptionId, true, null));
43
44        $this->logger->debug('Trigger subscription registered', [
45            'app' => $message->scope->wireValue(),
46            'platforms' => $message->trigger->listPlatforms(),
47        ]);
48    }
49}