Completed
Push — master ( e4cfa0...791473 )
by Olivier
02:38 queued 45s
created

BindingManager   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
c 0
b 0
f 0
lcom 0
cbo 4
dl 0
loc 46
ccs 24
cts 24
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B define() 0 23 5
A createBinding() 0 9 2
1
<?php
2
3
namespace Ola\RabbitMqAdminToolkitBundle\Manager;
4
5
use Guzzle\Http\Exception\ClientErrorResponseException;
6
use Ola\RabbitMqAdminToolkitBundle\VhostConfiguration;
7
8
class BindingManager extends AbstractManager
9
{
10
    /**
11
     * @param VhostConfiguration $configuration
12
     * @param string $queue
13
     * @param array $bindings
14
     */
15 3
    public function define(VhostConfiguration $configuration, $queue, array $bindings)
16
    {
17 3
        foreach ($bindings as $binding) {
18
19
            try {
20 3
                $bindings = $configuration->getClient()->bindings()->get(
21 3
                    $configuration->getName(),
22 3
                    $binding['exchange'],
23 3
                    $queue,
24 3
                    isset($binding['routing_key']) ? $binding['routing_key'] : null
25 3
                );
26
27 2
                if (0 === count($bindings)) {
28 1
                    $this->createBinding($configuration, $queue, $binding);
29 1
                }
30
31 3
            } catch (ClientErrorResponseException $e) {
32 1
                $this->handleNotFoundException($e);
33
34 1
                $this->createBinding($configuration, $queue, $binding);
35
            }
36 3
        }
37 3
    }
38
39
    /**
40
     * @param VhostConfiguration $configuration
41
     * @param $queue
42
     * @param array $binding
43
     */
44 2
    private function createBinding(VhostConfiguration $configuration, $queue, array $binding)
45
    {
46 2
        $configuration->getClient()->bindings()->create(
47 2
            $configuration->getName(),
48 2
            $binding['exchange'],
49 2
            $queue,
50 2
            isset($binding['routing_key']) ? $binding['routing_key'] : null
51 2
        );
52 2
    }
53
}
54