diff options
author | Jordan Nornhold <nornholdj@gmail.com> | 2015-10-10 10:10:24 -0400 |
---|---|---|
committer | Jordan Nornhold <nornholdj@gmail.com> | 2015-10-10 10:10:24 -0400 |
commit | 7c39c1e35afb32845859289e8a0cd8eaceece5f2 (patch) | |
tree | a3b7e904158fe2145673a1d54676672096675a5f /lib/SendGridCompatibility | |
parent | c2e4758d8df8cf7e20451ea3196f2dc918e245e1 (diff) | |
parent | 63022bf7bceb6aa7116159fd347be769594fa8b4 (diff) | |
download | php-sparkpost-7c39c1e35afb32845859289e8a0cd8eaceece5f2.zip php-sparkpost-7c39c1e35afb32845859289e8a0cd8eaceece5f2.tar.gz php-sparkpost-7c39c1e35afb32845859289e8a0cd8eaceece5f2.tar.bz2 |
Merge pull request #22 from SparkPost/http-adapter-update
Http adapter update
Diffstat (limited to 'lib/SendGridCompatibility')
-rw-r--r-- | lib/SendGridCompatibility/Email.php | 388 | ||||
-rw-r--r-- | lib/SendGridCompatibility/SendGrid.php | 32 |
2 files changed, 211 insertions, 209 deletions
diff --git a/lib/SendGridCompatibility/Email.php b/lib/SendGridCompatibility/Email.php index 5351324..251b7f2 100644 --- a/lib/SendGridCompatibility/Email.php +++ b/lib/SendGridCompatibility/Email.php @@ -2,198 +2,198 @@ namespace SparkPost\SendGridCompatibility; class Email { - public $model; - - - /** - * @desc Sets up the model for saving the configuration - */ - public function __construct() { - $this->model = array(); - } - - /** - * @desc adds addresses as recipients - * @param string $address - * @param string $name optional - * @return \SparkPost\SendGridCompatibility\Email - */ - 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)); - } else { - $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) { - $this->model['recipients'] = $addresses; - return $this; - } - - /** - * @desc sets the from address - * @param string $address - * @return \MessageSystems\SendGridCompatibility\Email - */ - public function setFrom($address) { - $this->model['from'] = array('email' => $address); - return $this; - } - - /** - * @desc sets the name for the from address - * @param string $name - */ - 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 - * @param string $address - * @return \MessageSystems\SendGridCompatibility\Email - */ - public function setReplyTo ($address) { - $this->model['replyTo'] = $address; - return $this; - } - - /** - * @desc throws an error because bcc fields are not yet implemented. - * @throws \Exception - * @param string $address - * @return \MessageSystems\SendGridCompatibility\Email - */ - 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 - * @param string $subject - * @return \SparkPost\SendGridCompatibility\Email - */ - public function setSubject($subject) { - $this->model['subject'] = $subject; - return $this; - } - - /** - * @desc sets the text body - * @param string $text - * @return \SparkPost\SendGridCompatibility\Email - */ - public function setText($text) { - $this->model['text'] = $text; - return $this; - } - - /** - * @desc sets the html body - * @param string $html - * @return \SparkPost\SendGridCompatibility\Email - */ - public function setHtml($html) { - $this->model['html'] = $html; - return $this; - } - - /** - * @desc Throws an exception since adding categories is not yet supported - * @throws \Exception - * @param string $category - * @throws \Exception - */ - 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 - * @param mixed $attachment - */ - public function addAttachment($attachment) { - throw new \Exception('Adding attachments is not yet supported'); - } - - /** - * @desc Adds transmission level substitution data - * @param string $name - * @param mixed $values - * @return \SparkPost\SendGridCompatibility\Email - */ - public function addSubstitution($name, $values) { - if (!isset($this->model['substitutionData'])) { - $this->model['substitutionData'] = array(); - } - $this->model['substitutionData'][$name] = $values; - - return $this; - } - - /** - * @desc Adds transmission level substitution data - * @param string $name - * @param mixed $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 - * @param mixed $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 - * @param mixed $values - */ - public function setUniqueArgs(array $values) { - throw new \Exception('Setting Unique Arguments is not yet supported'); - } - - /** - * @desc Adds custom headers to the email header - * @param string $name - * @param string $value - */ - public function addHeader($name, $value) { - if (!isset($this->model['customHeaders'])) { - $this->model['customHeaders'] = array(); - } - $this->model['customHeaders'][$name] = $value; - } - - /** - * @desc converts this object to a configuration for a SparkPost transmission - * @return array - */ - public function toSparkPostTransmission() { - return $this->model; - } + public $model; + + + /** + * @desc Sets up the model for saving the configuration + */ + public function __construct() { + $this->model = array(); + } + + /** + * @desc adds addresses as recipients + * @param string $address + * @param string $name optional + * @return \SparkPost\SendGridCompatibility\Email + */ + 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)); + } else { + $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) { + $this->model['recipients'] = $addresses; + return $this; + } + + /** + * @desc sets the from address + * @param string $address + * @return \MessageSystems\SendGridCompatibility\Email + */ + public function setFrom($address) { + $this->model['from'] = array('email' => $address); + return $this; + } + + /** + * @desc sets the name for the from address + * @param string $name + */ + 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 + * @param string $address + * @return \MessageSystems\SendGridCompatibility\Email + */ + public function setReplyTo ($address) { + $this->model['replyTo'] = $address; + return $this; + } + + /** + * @desc throws an error because bcc fields are not yet implemented. + * @throws \Exception + * @param string $address + * @return \MessageSystems\SendGridCompatibility\Email + */ + 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 + * @param string $subject + * @return \SparkPost\SendGridCompatibility\Email + */ + public function setSubject($subject) { + $this->model['subject'] = $subject; + return $this; + } + + /** + * @desc sets the text body + * @param string $text + * @return \SparkPost\SendGridCompatibility\Email + */ + public function setText($text) { + $this->model['text'] = $text; + return $this; + } + + /** + * @desc sets the html body + * @param string $html + * @return \SparkPost\SendGridCompatibility\Email + */ + public function setHtml($html) { + $this->model['html'] = $html; + return $this; + } + + /** + * @desc Throws an exception since adding categories is not yet supported + * @throws \Exception + * @param string $category + * @throws \Exception + */ + 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 + * @param mixed $attachment + */ + public function addAttachment($attachment) { + throw new \Exception('Adding attachments is not yet supported'); + } + + /** + * @desc Adds transmission level substitution data + * @param string $name + * @param mixed $values + * @return \SparkPost\SendGridCompatibility\Email + */ + public function addSubstitution($name, $values) { + if (!isset($this->model['substitutionData'])) { + $this->model['substitutionData'] = array(); + } + $this->model['substitutionData'][$name] = $values; + + return $this; + } + + /** + * @desc Adds transmission level substitution data + * @param string $name + * @param mixed $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 + * @param mixed $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 + * @param mixed $values + */ + public function setUniqueArgs(array $values) { + throw new \Exception('Setting Unique Arguments is not yet supported'); + } + + /** + * @desc Adds custom headers to the email header + * @param string $name + * @param string $value + */ + public function addHeader($name, $value) { + if (!isset($this->model['customHeaders'])) { + $this->model['customHeaders'] = array(); + } + $this->model['customHeaders'][$name] = $value; + } + + /** + * @desc converts this object to a configuration for a SparkPost transmission + * @return array + */ + public function toSparkPostTransmission() { + return $this->model; + } } -?>
\ No newline at end of file +?> diff --git a/lib/SendGridCompatibility/SendGrid.php b/lib/SendGridCompatibility/SendGrid.php index a85337a..7f8697a 100644 --- a/lib/SendGridCompatibility/SendGrid.php +++ b/lib/SendGridCompatibility/SendGrid.php @@ -1,22 +1,24 @@ <?php namespace SparkPost\SendGridCompatibility; -use SparkPost\Transmission; +use SparkPost\SparkPost; use SparkPost\SendGridCompatibility\Email; -use SparkPost\Configuration; class SendGrid{ - public function __construct($username, $password, $options = null) { - //username isn't used in our system - $opts = array('key'=>$password); - if (!is_null($options)) { - $opts = array_merge($opts, $options); - } - Configuration::setConfig($opts); - } - - public function send(Email $email) { - Trasmission::send($email->toSparkPostTransmission()); - } + private $sparky; + + public function __construct($username, $password, $options = null, $httpAdapter) { + //username isn't used in our system + $opts = array('key'=>$password); + if (!is_null($options)) { + $opts = array_merge($opts, $options); + } + + $this->sparky = new SparkPost($httpAdapter, $opts); + } + + public function send(Email $email) { + $this->sparky->transmission->send($email->toSparkPostTransmission()); + } } -?>
\ No newline at end of file +?> |