Passed
Push — master ( b8c44c...a2ae4c )
by Mike
02:04
created

RabbitMQFacade   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Test Coverage

Coverage 80.65%

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 61
ccs 25
cts 31
cp 0.8065
rs 10
c 0
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A runWorker() 0 6 1
A reconnect() 0 7 1
A init() 0 6 1
A sendMessages() 0 6 1
A close() 0 7 1
A sendMessage() 0 6 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Xervice\RabbitMQ\Business;
5
6
use DataProvider\RabbitMqMessageCollectionDataProvider;
7
use DataProvider\RabbitMqMessageDataProvider;
8
use Symfony\Component\Console\Output\OutputInterface;
9
use Xervice\Core\Business\Model\Facade\AbstractFacade;
10
11
12
/**
13
 * @method \Xervice\RabbitMQ\Business\RabbitMQBusinessFactory getFactory()
14
 * @method \Xervice\RabbitMQ\RabbitMQConfig getConfig()
15
 */
16
class RabbitMQFacade extends AbstractFacade implements RabbitMQFacadeInterface
17
{
18
    /**
19
     * Initiate the exchanges and queues in RabbitMQ
20
     *
21
     * @api
22
     */
23 2
    public function init(): void
24
    {
25
        $this
26 2
            ->getFactory()
27 2
            ->createBootstrapper()
28 2
            ->boot();
29 2
    }
30
31 2
    public function runWorker(OutputInterface $output = null): void
32
    {
33
        $this
34 2
            ->getFactory()
35 2
            ->createWorker()
36 2
            ->runWorker($output);
37 2
    }
38
39 1
    public function reconnect(): void
40
    {
41
        $this
42 1
            ->getFactory()
43 1
            ->getConnectionProvider()
44 1
            ->getConnection()
45 1
            ->reconnect();
46 1
    }
47
48
    public function close(): void
49
    {
50
        $this
51
            ->getFactory()
52
            ->getConnectionProvider()
53
            ->getConnection()
54
            ->close();
55
    }
56
57
    /**
58
     * @param \DataProvider\RabbitMqMessageDataProvider $messageDataProvider
59
     */
60 1
    public function sendMessage(RabbitMqMessageDataProvider $messageDataProvider): void
61
    {
62
        $this
63 1
            ->getFactory()
64 1
            ->getMessageProvider()
65 1
            ->sendMessage($messageDataProvider);
66 1
    }
67
68
    /**
69
     * @param \DataProvider\RabbitMqMessageCollectionDataProvider $messageCollectionDataProvider
70
     */
71 1
    public function sendMessages(RabbitMqMessageCollectionDataProvider $messageCollectionDataProvider): void
72
    {
73
        $this
74 1
            ->getFactory()
75 1
            ->getMessageProvider()
76 1
            ->sendBulk($messageCollectionDataProvider);
77 1
    }
78
}
79