diff options
Diffstat (limited to 'lib/SendGridCompatibility/Email.php')
-rw-r--r-- | lib/SendGridCompatibility/Email.php | 149 |
1 files changed, 98 insertions, 51 deletions
diff --git a/lib/SendGridCompatibility/Email.php b/lib/SendGridCompatibility/Email.php index 251b7f2..b375839 100644 --- a/lib/SendGridCompatibility/Email.php +++ b/lib/SendGridCompatibility/Email.php @@ -1,146 +1,181 @@ <?php namespace SparkPost\SendGridCompatibility; -class Email { +class Email +{ public $model; - /** - * @desc Sets up the model for saving the configuration + * Sets up the model for saving the configuration */ - public function __construct() { + public function __construct() + { $this->model = array(); } /** - * @desc adds addresses as recipients + * Adds addresses as recipients + * * @param string $address * @param string $name optional * @return \SparkPost\SendGridCompatibility\Email */ - public function addTo($address, $name = null) { + public function addTo($address, $name = null) + { if (!isset($this->model['recipients'])) { $this->model['recipients'] = array(); } - if(isset($name)) { - $address = array('address'=>array('email'=>$address, 'name'=>$name)); + if (isset($name)) { + $address = array('address' => array('email' => $address, 'name' => $name)); } else { - $address = array('address'=>array('email'=>$address)); + $address = array('address' => array('email' => $address)); } array_push($this->model['recipients'], $address); + return $this; } /** - * @desc explicitly sets a list of addresses - * @param array $addresses - * @return \SparkPost\SendGridCompatibility\Email - */ - public function setTos(array $addresses) { + * Explicitly sets a list of addresses + * + * @param array $addresses + * @return \SparkPost\SendGridCompatibility\Email + */ + public function setTos(array $addresses) + { $this->model['recipients'] = $addresses; + return $this; } /** - * @desc sets the from address + * Sets the from address + * * @param string $address - * @return \MessageSystems\SendGridCompatibility\Email + * @return $this */ - public function setFrom($address) { + public function setFrom($address) + { $this->model['from'] = array('email' => $address); + return $this; } /** - * @desc sets the name for the from address + * Sets the name for the from address + * * @param string $name + * @return $this + * @throws \Exception */ - public function setFromName($name) { - if(!isset($this->model['from'])){ + public function setFromName($name) + { + if (!isset($this->model['from'])) { throw new \Exception('Must set \'From\' prior to setting \'From Name\'.'); } $this->model['from']['name'] = $name; + return $this; } /** - * @desc sets the reply to field + * Sets the reply to field + * * @param string $address - * @return \MessageSystems\SendGridCompatibility\Email + * @return $this */ - public function setReplyTo ($address) { + public function setReplyTo($address) + { $this->model['replyTo'] = $address; + return $this; } /** - * @desc throws an error because bcc fields are not yet implemented. + * Throws an error because bcc fields are not yet implemented + * * @throws \Exception * @param string $address - * @return \MessageSystems\SendGridCompatibility\Email + * @return $this */ - public function addBcc($address) { + public function addBcc($address) + { throw new \Exception('Adding bcc recipients is not yet supported, try adding them as a \'to\' address'); } /** - * @desc sets the subject header + * Sets the subject header + * * @param string $subject * @return \SparkPost\SendGridCompatibility\Email */ - public function setSubject($subject) { + public function setSubject($subject) + { $this->model['subject'] = $subject; + return $this; } /** - * @desc sets the text body + * Sets the text body + * * @param string $text * @return \SparkPost\SendGridCompatibility\Email */ - public function setText($text) { + public function setText($text) + { $this->model['text'] = $text; + return $this; } /** - * @desc sets the html body + * Sets the html body + * * @param string $html * @return \SparkPost\SendGridCompatibility\Email */ - public function setHtml($html) { + public function setHtml($html) + { $this->model['html'] = $html; + return $this; } /** - * @desc Throws an exception since adding categories is not yet supported + * Throws an exception since adding categories is not yet supported + * * @throws \Exception * @param string $category * @throws \Exception */ - public function addCategory($category) { + public function addCategory($category) + { throw new \Exception('Adding categories is not yet supported'); } /** - * @desc Throws an exception since adding attachments is not yet supported - * @throws Exception + * Throws an exception since adding attachments is not yet supported + * * @param mixed $attachment + * @throws \Exception */ - public function addAttachment($attachment) { + public function addAttachment($attachment) + { throw new \Exception('Adding attachments is not yet supported'); } /** - * @desc Adds transmission level substitution data + * Adds transmission level substitution data + * * @param string $name * @param mixed $values * @return \SparkPost\SendGridCompatibility\Email */ - public function addSubstitution($name, $values) { + public function addSubstitution($name, $values) + { if (!isset($this->model['substitutionData'])) { $this->model['substitutionData'] = array(); } @@ -150,38 +185,47 @@ class Email { } /** - * @desc Adds transmission level substitution data + * Adds transmission level substitution data + * * @param string $name * @param mixed $values */ - public function addSection($name, $values) { + public function addSection($name, $values) + { $this->addSubstitution($name, $values); } /** - * @desc Throws an exception because arguments for third party systems is not supported - * @throws Exception + * Throws an exception because arguments for third party systems is not supported + * + * @param $key * @param mixed $value + * @throws \Exception */ - public function addUniqueArg($key, $value) { + public function addUniqueArg($key, $value) + { throw new \Exception('Adding Unique Arguments is not yet supported'); } /** - * @desc Throws an exception because arguments for third party systems is not supported - * @throws Exception + * Throws an exception because arguments for third party systems is not supported + * * @param mixed $values + * @throws \Exception */ - public function setUniqueArgs(array $values) { + public function setUniqueArgs(array $values) + { throw new \Exception('Setting Unique Arguments is not yet supported'); } /** - * @desc Adds custom headers to the email header + * Adds custom headers to the email header + * * @param string $name * @param string $value */ - public function addHeader($name, $value) { + public function addHeader($name, $value) + { if (!isset($this->model['customHeaders'])) { $this->model['customHeaders'] = array(); } @@ -189,11 +233,14 @@ class Email { } /** - * @desc converts this object to a configuration for a SparkPost transmission + * Converts this object to a configuration for a SparkPost transmission + * * @return array */ - public function toSparkPostTransmission() { + public function toSparkPostTransmission() + { return $this->model; } } + ?> |