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

BindingManager::createBinding()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 9
ccs 8
cts 8
cp 1
rs 9.6666
cc 2
eloc 6
nc 1
nop 3
crap 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