Lines 0.00% 0 / 3
Functions and Methods 0.00% 0 / 3
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
TriggerFiredHandler 0.00% 0 / 3 0.00% 0 / 3 12 0.00% 0 / 1
 __construct 0.00% 0 / 1 0.00% 0 / 1 2
 handledMessageClass 0.00% 0 / 1 0.00% 0 / 1 2
 handle 0.00% 0 / 1 0.00% 0 / 1 2
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Runtime\Worker\Message;
6
7use Stewart\Runtime\Dispatch\LocalDispatcher;
8use Stewart\Runtime\Ipc\Message\BrokerMessage;
9use Stewart\Runtime\Ipc\Message\TriggerFired;
10use Stewart\Runtime\Model\Collection\SubscriptionIdCollection;
11
12/** @implements BrokerMessageHandler<TriggerFired> */
13final readonly class TriggerFiredHandler implements BrokerMessageHandler
14{
15    public function __construct(private LocalDispatcher $dispatcher) {}
16
17    public function handledMessageClass(): string
18    {
19        return TriggerFired::class;
20    }
21
22    /** @param TriggerFired $message */
23    public function handle(BrokerMessage $message): void
24    {
25        $this->dispatcher->dispatchTrigger($message->event, SubscriptionIdCollection::fromList($message->deliverTo));
26    }
27}