Completed
Pull Request — master (#7)
by Olivier
07:07 queued 05:13
created

BindingManager::define()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 23
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 18
CRAP Score 5

Importance

Changes 0
Metric Value
dl 0
loc 23
ccs 18
cts 18
cp 1
rs 8.5906
c 0
b 0
f 0
cc 5
eloc 13
nc 6
nop 3
crap 5
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 2
    public function define(VhostConfiguration $configuration, $queue, array $bindings)
16
    {
17 2
        foreach ($bindings as $binding) {
18
19
            try {
20 2
                $bindings = $configuration->getClient()->bindings()->get(
21 2
                    $configuration->getName(),
22 2
                    $binding['exchange'],
23 2
                    $queue,
24 2
                    isset($binding['routing_key']) ? $binding['routing_key'] : null
25 2
                );
26 2
27 1
                if (0 === count($bindings)) {
28
                    $this->createBinding($configuration, $queue, $binding);
29 1
                }
30 1
31 1
            } catch (ClientErrorResponseException $e) {
32 1
                $this->handleNotFoundException($e);
33 1
34 1
                $this->createBinding($configuration, $queue, $binding);
35
            }
36 2
        }
37 2
    }
38
39
    /**
40
     * @param VhostConfiguration $configuration
41
     * @param $queue
42
     * @param array $binding
43
     */
44
    private function createBinding(VhostConfiguration $configuration, $queue, array $binding)
45
    {
46
        $configuration->getClient()->bindings()->create(
47
            $configuration->getName(),
48
            $binding['exchange'],
49
            $queue,
50
            isset($binding['routing_key']) ? $binding['routing_key'] : null
51
        );
52
    }
53
}
54