Completed
Push — master ( f7bed6...7b8b9a )
by Gabriel
05:48 queued 11s
created

RecordTrait::getBody()

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 0
cp 0
c 0
b 0
f 0
nc 1
1
<?php
2
3
namespace Nip\Mail\Models\Mailable;
4
5
use Nip\Mail\Message;
6
use Nip\Mail\Traits\MailableTrait;
7
8
/**
9
 * Class RecordTrait
10
 * @package Nip\Mail\Models\Mailable
11
 *
12
 */
13
trait RecordTrait
14
{
15
    use MailableTrait;
16
17
    /**
18
     * @param Message $message
19
     */
20
    public function buildMailMessageFrom(&$message)
21
    {
22
        $message->setFrom($this->getFrom());
23
    }
24
25
    /**
26
     * @return string
27
     */
28
    abstract public function getFrom();
29
30
    /**
31
     * @param Message $message
32
     */
33
    public function buildMailMessageRecipients(&$message)
34
    {
35
        foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) {
36
            $method = 'get' . ucfirst($type) . 's';
37
            $recipients = method_exists($this, $method) ? $this->{$method}() : $this->{$type};
38
            if (is_array($recipients)) {
39
                foreach ($recipients as $address => $name) {
40
                    $message->{'add' . ucfirst($type)}($address, $name);
41
                }
42
            }
43
        }
44
    }
45
46
    /**
47
     * @param Message $message
48
     */
49
    public function buildMailMessageSubject(&$message)
50
    {
51
        $message->setSubject($this->getSubject());
52
    }
53
54
    /**
55
     * @return string
56
     */
57
    abstract public function getSubject();
58
59
    /**
60
     * @param Message $message
61
     */
62
    public function buildMailMessageBody(&$message)
63
    {
64
        $message->setBody($this->getBody(), 'text/html');
65
    }
66
67
    /**
68
     * @return string
69
     */
70
    abstract public function getBody();
71
72
    /**
73
     * @param Message $message
74
     */
75
    public function buildMailMessageAttachments(&$message)
0 ignored issues
show
Unused Code introduced by
The parameter $message is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
76
    {
77
    }
78
79
    /**
80
     * @param Message $message
81
     */
82 1
    public function buildMailMessageMergeTags(&$message)
83
    {
84 1
        $mergeTags = $this->getMergeTags();
85 1
        $body = $this->getBody();
86 1
        foreach ($mergeTags as $tag => $value) {
87 1
            $encapsulated = \Nip\Mail\Models\MergeTags\RecordTrait::encapsulate($tag);
88 1
            if (strpos($body, $encapsulated) !== false) {
89 1
                $message->addMergeTag($tag, $value);
90
            }
91
        }
92 1
    }
93
94
    /**
95
     * @return array
96
     */
97
    abstract public function getMergeTags();
98
99
    /**
100
     * @param Message $message
101
     */
102
    public function buildMailMessageCustomArgs(&$message)
103
    {
104
        $message->setCustomArgs($this->getCustomArgs());
105
    }
106
107
    /**
108
     * @return array
109
     */
110
    abstract protected function getCustomArgs();
111
112
    /**
113
     * @return string
114
     */
115
    abstract public function getTos();
116
}
117