Completed
Push — master ( c2ba48...1fd225 )
by Markus
14s queued 12s
created

MessageMapper::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 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