ProcessMessage::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
4
namespace SirSova\Webhooks\Jobs;
5
6
use Illuminate\Bus\Queueable;
7
use Illuminate\Foundation\Bus\Dispatchable;
8
use Illuminate\Queue\InteractsWithQueue;
9
use SirSova\Webhooks\Contracts\MessageProcessor;
10
use SirSova\Webhooks\Message;
11
12
class ProcessMessage
13
{
14
    use Dispatchable, InteractsWithQueue, Queueable;
15
    
16
    /**
17
     * @var Message
18
     */
19
    private $message;
20
21
    public function __construct(Message $message)
22
    {
23
        $this->message = $message;
24
    }
25
26
    /**
27
     * @param string      $type
28
     * @param             $context
29
     * @param string|null $queue
30
     *
31
     * @return ProcessMessage
32
     */
33
    public static function queued(string $type, $context, ?string $queue = null): self
34
    {
35
        return static::create($type, $context)->onQueue($queue ?? config('webhooks.message-queue'));
36
    }
37
38
    /**
39
     * @param string $type
40
     * @param        $context
41
     *
42
     * @return ProcessMessage
43
     */
44
    public static function create(string $type, $context): self
45
    {
46
        return new static(new Message($type, $context));
47
    }
48
49
    /**
50
     * @param MessageProcessor $messageProcessor
51
     */
52
    public function handle(MessageProcessor $messageProcessor): void
53
    {
54
        $messageProcessor->process($this->message);
55
    }
56
}
57