Test Failed
Pull Request — master (#9)
by Nicolas
10:03 queued 04:15
created

MessageDecoder   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 8

Importance

Changes 0
Metric Value
dl 0
loc 34
c 0
b 0
f 0
wmc 5
lcom 0
cbo 8
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B decode() 0 24 4
1
<?php
2
3
namespace Puzzle\AMQP\Messages;
4
5
use Puzzle\AMQP\ReadableMessage;
6
use Puzzle\AMQP\Messages\Bodies\Text;
7
use Puzzle\AMQP\Messages\Bodies\Json;
8
use Puzzle\AMQP\Messages\Bodies\Binary;
9
use Puzzle\AMQP\Messages\Bodies\NullBody;
10
use Psr\Log\LoggerAwareTrait;
11
use Psr\Log\NullLogger;
12
13
class MessageDecoder
14
{
15
    use LoggerAwareTrait;
16
    
17
    public function __construct()
18
    {
19
        $this->logger = new NullLogger();
20
    }
21
    
22
    public function decode(ReadableMessage $message)
23
    {
24
        $bodyContent = $message->getRawBody();
25
        $contentType = $message->getContentType();
26
        
27
        switch($contentType)
28
        {
29
            case ContentType::TEXT:
30
                return new Text($bodyContent);
31
                
32
            case ContentType::JSON:
33
                $body = new Json();
34
                $body->changeContentWithJson($bodyContent);
35
                
36
                return $body;
37
                
38
            case ContentType::BINARY:
39
                return new Binary($bodyContent);
40
        }
41
        
42
        $this->logger->warning(__CLASS__ . ": unknown content-type, use empty body");
43
        
44
        return new NullBody();
45
    }
46
}
47