ConsumerHandler::handle()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 3
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 7
rs 10
1
<?php
2
3
namespace Chocofamily\LaravelEventSauce;
4
5
use EventSauce\EventSourcing\Consumer as EventSauceConsumer;
6
use EventSauce\EventSourcing\Message;
7
use Illuminate\Bus\Queueable;
8
use Illuminate\Contracts\Container\Container;
9
use Illuminate\Contracts\Queue\ShouldQueue;
10
use Illuminate\Queue\InteractsWithQueue;
11
12
final class ConsumerHandler implements ShouldQueue
13
{
14
    use InteractsWithQueue, Queueable;
15
16
    /** @var string */
17
    private $consumer;
18
19
    /** @var Message[] */
20
    private $messages = [];
21
22
    /**
23
     * ConsumerHandler constructor.
24
     * @param string $consumer
25
     * @param Message[] $messages
26
     */
27
    public function __construct(string $consumer, Message ...$messages)
28
    {
29
        $this->consumer = $consumer;
30
        $this->messages = $messages;
31
    }
32
33
    public function handle(Container $container): void
34
    {
35
        /** @var EventSauceConsumer $consumer */
36
        $consumer = $container->make($this->consumer);
37
38
        foreach ($this->messages as $message) {
39
            $consumer->handle($message);
40
        }
41
    }
42
}
43