Passed
Push — master ( a2ae4c...9be3ef )
by Mike
02:07
created

RabbitMQFacade::consumeQueries()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
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
use Xervice\RabbitMQ\Business\Dependency\Worker\Listener\ListenerInterface;
11
12
13
/**
14
 * @method \Xervice\RabbitMQ\Business\RabbitMQBusinessFactory getFactory()
15
 * @method \Xervice\RabbitMQ\RabbitMQConfig getConfig()
16
 */
17
class RabbitMQFacade extends AbstractFacade implements RabbitMQFacadeInterface
18
{
19
    /**
20
     * Initiate the exchanges and queues in RabbitMQ
21
     *
22
     * @api
23
     */
24 2
    public function init(): void
25
    {
26
        $this
27 2
            ->getFactory()
28 2
            ->createBootstrapper()
29 2
            ->boot();
30 2
    }
31
32
    /**
33
     * @param \Xervice\RabbitMQ\Business\Dependency\Worker\Listener\ListenerInterface $listener
34
     */
35 2
    public function consumeQueries(ListenerInterface $listener): void
36
    {
37 2
        $this->getFactory()
38 2
             ->createConsumer($listener)
39 2
             ->consumeQueries();
40 2
    }
41
42 2
    public function runWorker(OutputInterface $output = null): void
43
    {
44
        $this
45 2
            ->getFactory()
46 2
            ->createWorker()
47 2
            ->runWorker($output);
48 2
    }
49
50 1
    public function reconnect(): void
51
    {
52
        $this
53 1
            ->getFactory()
54 1
            ->getConnectionProvider()
55 1
            ->getConnection()
56 1
            ->reconnect();
57 1
    }
58
59
    public function close(): void
60
    {
61
        $this
62
            ->getFactory()
63
            ->getConnectionProvider()
64
            ->getConnection()
65
            ->close();
66
    }
67
68
    /**
69
     * @param \DataProvider\RabbitMqMessageDataProvider $messageDataProvider
70
     */
71 1
    public function sendMessage(RabbitMqMessageDataProvider $messageDataProvider): void
72
    {
73
        $this
74 1
            ->getFactory()
75 1
            ->getMessageProvider()
76 1
            ->sendMessage($messageDataProvider);
77 1
    }
78
79
    /**
80
     * @param \DataProvider\RabbitMqMessageCollectionDataProvider $messageCollectionDataProvider
81
     */
82 1
    public function sendMessages(RabbitMqMessageCollectionDataProvider $messageCollectionDataProvider): void
83
    {
84
        $this
85 1
            ->getFactory()
86 1
            ->getMessageProvider()
87 1
            ->sendBulk($messageCollectionDataProvider);
88 1
    }
89
}
90