Passed
Pull Request — master (#6)
by Daniel
04:58
created

MessageMapper   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 7
dl 0
loc 43
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A toJson() 0 3 1
A __construct() 0 4 1
A fromJson() 0 6 1
1
<?php
2
3
namespace Jellyfish\Queue;
4
5
use Jellyfish\Serializer\SerializerInterface;
6
7
class MessageMapper implements MessageMapperInterface
8
{
9
    /**
10
     * @var \Jellyfish\Queue\MessageFactoryInterface
11
     */
12
    protected $messageFactory;
13
14
    /**
15
     * @var \Jellyfish\Serializer\SerializerInterface
16
     */
17
    protected $serializer;
18
19
    /**
20
     * @param \Jellyfish\Serializer\SerializerInterface $serializer
21
     */
22
    public function __construct(
23
        SerializerInterface $serializer
24
    ) {
25
        $this->serializer = $serializer;
26
    }
27
28
29
    /**
30
     * @param string $json
31
     *
32
     * @return \Jellyfish\Queue\MessageInterface
33
     */
34
    public function fromJson(string $json): MessageInterface
35
    {
36
        /** @var \Jellyfish\Queue\MessageInterface $message */
37
        $message = $this->serializer->deserialize($json, Message::class, 'json');
38
39
        return $message;
40
    }
41
42
    /**
43
     * @param \Jellyfish\Queue\MessageInterface $message
44
     *
45
     * @return string
46
     */
47
    public function toJson(MessageInterface $message): string
48
    {
49
        return $this->serializer->serialize($message, 'json');
50
    }
51
}
52