MailTemplate::getSubject()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
cc 1
nc 1
nop 0
rs 10
1
<?php
2
3
namespace Spatie\MailTemplates\Models;
4
5
use Illuminate\Contracts\Mail\Mailable;
6
use Illuminate\Database\Eloquent\Model;
7
use Illuminate\Database\Eloquent\Builder;
8
use Spatie\MailTemplates\Exceptions\MissingMailTemplate;
9
use Spatie\MailTemplates\Interfaces\MailTemplateInterface;
10
11
class MailTemplate extends Model implements MailTemplateInterface
12
{
13
    protected $guarded = [];
14
15
    public function scopeForMailable(Builder $query, Mailable $mailable): Builder
16
    {
17
        return $query->where('mailable', get_class($mailable));
18
    }
19
20
    public static function findForMailable(Mailable $mailable): self
21
    {
22
        $mailTemplate = static::forMailable($mailable)->first();
23
24
        if (! $mailTemplate) {
25
            throw MissingMailTemplate::forMailable($mailable);
26
        }
27
28
        return $mailTemplate;
29
    }
30
31
    public function getHtmlLayout(): ?string
32
    {
33
        return null;
34
    }
35
36
    public function getTextLayout(): ?string
37
    {
38
        return null;
39
    }
40
41
    public function getVariables(): array
42
    {
43
        $mailableClass = $this->mailable;
44
45
        if (! class_exists($mailableClass)) {
46
            return [];
47
        }
48
49
        return $mailableClass::getVariables();
50
    }
51
52
    public function getVariablesAttribute(): array
53
    {
54
        return $this->getVariables();
55
    }
56
57
    public function getSubject(): string
58
    {
59
        return $this->subject;
60
    }
61
62
    public function getHtmlTemplate(): string
63
    {
64
        return $this->html_template;
65
    }
66
67
    public function getTextTemplate(): ?string
68
    {
69
        return $this->text_template;
70
    }
71
}
72