CandidateMailable   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
c 1
b 0
f 0
dl 0
loc 53
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A build() 0 11 3
A __construct() 0 7 1
1
<?php
2
3
namespace App\Mail;
4
5
use App\Models\Message;
6
use Illuminate\Bus\Queueable;
7
use Illuminate\Mail\Mailable;
8
9
class CandidateMailable extends Mailable
10
{
11
    use Queueable;
12
13
    /**
14
     * @var Message
15
     */
16
    private $messageToSend; //the name cannot be just $message bacause it interferes with sth
17
18
    /**
19
     * Using in event listener.
20
     *
21
     * @var int
22
     */
23
    public $messageId;
24
25
    /**
26
     * We need Tenant to use in MessageSentListener.
27
     *
28
     * @var string
29
     */
30
    public $tenantIdentifier;
31
32
    /**
33
     * Create a new message instance.
34
     *
35
     * @param Message $messageToSend
36
     */
37
    public function __construct(Message $messageToSend)
38
    {
39
        $this->messageToSend = $messageToSend;
40
        $this->messageId = $messageToSend->id;
41
42
        $tenantManager = resolve('App\Services\TenantManager');
43
        $this->tenantIdentifier = $tenantManager->getTenant()->subdomain;
44
    }
45
46
    /**
47
     * Build the message.
48
     *
49
     * @return $this
50
     */
51
    public function build()
52
    {
53
        if (!empty($this->messageToSend->reply_to)) {
54
            $this->replyTo($this->messageToSend->reply_to);
55
        }
56
57
        if (!empty($this->messageToSend->cc)) {
58
            $this->cc($this->messageToSend->cc);
59
        }
60
61
        return $this->subject($this->messageToSend->subject)->view('emails.candidate', ['messageToSend' => $this->messageToSend]);
62
    }
63
}
64