Completed
Push — dev ( b407ba...a6af5b )
by Shingo
24:39
created

Personalize::setBcc()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
namespace Sichikawa\LaravelSendgridDriver\Api;
3
4
use Sichikawa\LaravelSendgridDriver\Api\Email\Bcc;
5
use Sichikawa\LaravelSendgridDriver\Api\Email\Cc;
6
use Sichikawa\LaravelSendgridDriver\Api\Email\To;
7
8
class Personalize
9
{
10
    /**
11
     * @var To
12
     */
13
    public $to;
14
15
    /**
16
     * @var Cc
17
     */
18
    public $cc;
19
20
    /**
21
     * @var Bcc
22
     */
23
    public $bcc;
24
25
    /**
26
     * @var string
27
     */
28
    public $subject;
29
30
    /**
31
     * @var array
32
     */
33
    public $headers;
34
35
    /**
36
     * @var array
37
     */
38
    public $substitutions;
39
40
    /**
41
     * @var array
42
     */
43
    public $custom_args;
44
45
    /**
46
     * @var int
47
     */
48
    public $send_at;
49
50
    /**
51
     * @param $email
52
     * @param null $name
53
     * @return $this
54
     */
55
    public function setTo($email, $name = null)
56
    {
57
        $this->to = new To($email, $name);
58
        return $this;
59
    }
60
61
    /**
62
     * @param $email
63
     * @param null $name
64
     * @return $this
65
     */
66
    public function setCc($email, $name = null)
67
    {
68
        $this->cc = new Cc($email, $name);
69
        return $this;
70
    }
71
72
    /**
73
     * @param $email
74
     * @param null $name
75
     * @return $this
76
     */
77
    public function setBcc($email, $name = null)
78
    {
79
        $this->bcc = new Bcc($email, $name);
80
        return $this;
81
    }
82
83
    /**
84
     * @param string $subject
85
     * @return $this
86
     */
87
    public function setSubject($subject)
88
    {
89
        $this->subject = $subject;
90
        return $this;
91
    }
92
93
    /**
94
     * @param array $headers
95
     * @return $this
96
     */
97
    public function setHeaders($headers)
98
    {
99
        $this->headers = $headers;
100
        return $this;
101
    }
102
103
    /**
104
     * @param $key
105
     * @param $value
106
     * @return $this
107
     */
108
    public function addSubstitutions($key, $value)
109
    {
110
        $this->substitutions[$key] = $value;
111
        return $this;
112
    }
113
114
    /**
115
     * @param $key
116
     * @param $value
117
     * @return $this
118
     */
119
    public function addCustomArgs($key, $value)
120
    {
121
        $this->custom_args[$key] = $value;
122
        return $this;
123
    }
124
125
    /**
126
     * @param int $send_at
127
     */
128
    public function setSendAt($send_at)
129
    {
130
        $this->send_at = $send_at;
131
    }
132
133
    public function toArray()
134
    {
135
        return array_filter(json_decode(json_encode($this), true), function ($val) {
136
            return !empty($val);
137
        });
138
    }
139
}
140