DomainMessageListener::getContext()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
ccs 4
cts 4
cp 1
rs 9.4285
cc 2
eloc 4
nc 2
nop 1
crap 2
1
<?php
2
3
namespace MessageApp\Listener;
4
5
use Broadway\Domain\DomainMessage;
6
use Broadway\EventHandling\EventListener;
7
use Broadway\Tools\Metadata\Context\ContextEnricher;
8
9
class DomainMessageListener implements EventListener
10
{
11
    /**
12
     * @var MessageEventHandler
13
     */
14
    private $handler;
15
16
    /**
17
     * Constructor
18
     *
19
     * @param MessageEventHandler $handler
20
     */
21 6
    public function __construct(MessageEventHandler $handler)
22
    {
23 6
        $this->handler = $handler;
24 6
    }
25
26
    /**
27
     * Handle an event.
28
     *
29
     * @param DomainMessage $message
30
     *
31
     * @return void
32
     */
33 6
    public function handle(DomainMessage $message)
34
    {
35 6
        $event = $message->getPayload();
36 6
        $context = self::getContext($message);
37
38 6
        $this->handler->handle($event, $context);
39 6
    }
40
41
    /**
42
     * @param  DomainMessage $message
43
     *
44
     * @return mixed
45
     */
46 6
    private static function getContext(DomainMessage $message)
47
    {
48 6
        $metadataArray = $message->getMetadata()->serialize();
49 6
        $context = isset($metadataArray[ContextEnricher::CONTEXT]) ? $metadataArray[ContextEnricher::CONTEXT] : null;
50
51 6
        return $context;
52
    }
53
}
54