Skip to content

Commit

Permalink
removed test, because it's not needed after added strong-typing to th…
Browse files Browse the repository at this point in the history
…e 'setHttpAdapter' method
  • Loading branch information
djagya authored and jasonrhodes committed Feb 28, 2016
1 parent f4ed222 commit 286f9be
Show file tree
Hide file tree
Showing 8 changed files with 162 additions and 249 deletions.
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -2,7 +2,7 @@
"name": "sparkpost/php-sparkpost",
"description": "Client library for interfacing with the SparkPost API.",
"license": "Apache 2.0",
"version": "1.0.1",
"version": "1.0.2",
"authors": [
{
"name": "Message Systems, Inc."
Expand Down
133 changes: 43 additions & 90 deletions lib/SendGridCompatibility/Email.php
@@ -1,181 +1,146 @@
<?php
namespace SparkPost\SendGridCompatibility;

class Email
{
class Email {
public $model;

/**
* Sets up the model for saving the configuration
*/
public function __construct()
{
public function __construct() {
$this->model = array();
}

/**
* Adds addresses as recipients
*
* adds addresses as recipients
* @param string $address
* @param string $name optional
* @return \SparkPost\SendGridCompatibility\Email
* @return $this
*/
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;
}

/**
* 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 $this
*/
public function setTos(array $addresses) {
$this->model['recipients'] = $addresses;

return $this;
}

/**
* Sets the from address
*
* sets the from address
* @param string $address
* @return $this
*/
public function setFrom($address)
{
public function setFrom($address) {
$this->model['from'] = array('email' => $address);

return $this;
}

/**
* 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;
}

/**
* Sets the reply to field
*
* sets the reply to field
* @param string $address
* @return $this
*/
public function setReplyTo($address)
{
public function setReplyTo ($address) {
$this->model['replyTo'] = $address;

return $this;
}

/**
* 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 $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');
}

/**
* Sets the subject header
*
* sets the subject header
* @param string $subject
* @return \SparkPost\SendGridCompatibility\Email
* @return $this
*/
public function setSubject($subject)
{
public function setSubject($subject) {
$this->model['subject'] = $subject;

return $this;
}

/**
* Sets the text body
*
* sets the text body
* @param string $text
* @return \SparkPost\SendGridCompatibility\Email
* @return $this
*/
public function setText($text)
{
public function setText($text) {
$this->model['text'] = $text;

return $this;
}

/**
* Sets the html body
*
* sets the html body
* @param string $html
* @return \SparkPost\SendGridCompatibility\Email
* @return $this
*/
public function setHtml($html)
{
public function setHtml($html) {
$this->model['html'] = $html;

return $this;
}

/**
* 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');
}

/**
* Throws an exception since adding attachments is not yet supported
*
* @param mixed $attachment
* @throws \Exception
* @param mixed $attachment
*/
public function addAttachment($attachment)
{
public function addAttachment($attachment) {
throw new \Exception('Adding attachments is not yet supported');
}

/**
* Adds transmission level substitution data
*
* @param string $name
* @param mixed $values
* @return \SparkPost\SendGridCompatibility\Email
* @return $this
*/
public function addSubstitution($name, $values)
{
public function addSubstitution($name, $values) {
if (!isset($this->model['substitutionData'])) {
$this->model['substitutionData'] = array();
}
Expand All @@ -186,61 +151,49 @@ public function addSubstitution($name, $values)

/**
* 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);
}

/**
* Throws an exception because arguments for third party systems is not supported
*
* @param $key
* @param mixed $value
* @throws \Exception
* @param mixed $value
*/
public function addUniqueArg($key, $value)
{
public function addUniqueArg($key, $value) {
throw new \Exception('Adding Unique Arguments is not yet supported');
}

/**
* Throws an exception because arguments for third party systems is not supported
*
* @param mixed $values
* @throws \Exception
* @param mixed $values
*/
public function setUniqueArgs(array $values)
{
public function setUniqueArgs(array $values) {
throw new \Exception('Setting Unique Arguments is not yet supported');
}

/**
* 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();
}
$this->model['customHeaders'][$name] = $value;
}

/**
* 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;
}
}

?>
14 changes: 5 additions & 9 deletions lib/SendGridCompatibility/SendGrid.php
Expand Up @@ -3,25 +3,21 @@

use SparkPost\SparkPost;

class SendGrid
{
class SendGrid{
private $sparky;

public function __construct($username, $password, $options = null, $httpAdapter)
{
// username isn't used in our system
$opts = array('key' => $password);
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)
{
public function send(Email $email) {
$this->sparky->transmission->send($email->toSparkPostTransmission());
}
}

?>

0 comments on commit 286f9be

Please sign in to comment.