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

BindingManager::createBinding()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

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