ProcessMessage   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 7
c 2
b 1
f 0
dl 0
loc 43
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 3 1
A handle() 0 3 1
A __construct() 0 3 1
A queued() 0 3 1
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