diff options
author | Avi Goldman <avrahamymgoldman@gmail.com> | 2016-06-10 10:15:49 -0400 |
---|---|---|
committer | Avi Goldman <avrahamymgoldman@gmail.com> | 2016-06-10 10:15:49 -0400 |
commit | 425bc01d8b2915f114032777e03046cdd5884453 (patch) | |
tree | a0b96315484e112272c4d53b9805b438a5685e9d /lib/SparkPost/SparkPost.php | |
parent | 45657aeff2eabb9974676471f2924eeed1b4fb29 (diff) | |
download | php-sparkpost-425bc01d8b2915f114032777e03046cdd5884453.zip php-sparkpost-425bc01d8b2915f114032777e03046cdd5884453.tar.gz php-sparkpost-425bc01d8b2915f114032777e03046cdd5884453.tar.bz2 |
FAD-3148 added custom promise class and custom response class. Did good things to SparkPost class
Diffstat (limited to 'lib/SparkPost/SparkPost.php')
-rw-r--r-- | lib/SparkPost/SparkPost.php | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/lib/SparkPost/SparkPost.php b/lib/SparkPost/SparkPost.php index 8ba9bf9..b37351e 100644 --- a/lib/SparkPost/SparkPost.php +++ b/lib/SparkPost/SparkPost.php @@ -2,8 +2,9 @@ namespace SparkPost; -use GuzzleHttp\Psr7\Request as Request; use Http\Client\HttpClient; +use GuzzleHttp\Psr7\Request as Request; +use SparkPost\Promise as SparkPostPromise; class SparkPost { @@ -12,6 +13,8 @@ class SparkPost public $httpClient; private $options; + public $transmissions; + private static $defaultOptions = [ 'host' => 'api.sparkpost.com', 'protocol' => 'https', @@ -26,31 +29,34 @@ class SparkPost { $this->setOptions($options); $this->setHttpClient($httpClient); + $this->setupEndpoints(); } - public function request($method, $uri, $payload = []) + public function request($method = '', $uri = '', $payload = [], $headers = []) { $method = trim(strtoupper($method)); if ($method === 'GET') { $params = $payload; - $body = null; + $body = []; } else { - $params = null; + $params = []; $body = $payload; } $url = $this->getUrl($uri, $params); - $headers = $this->getHttpHeaders(); + $headers = $this->getHttpHeaders($headers); - $request = new Request($method, $url, $headers, $body); + $request = new Request($method, $url, $headers, json_encode($body)); - return $httpClient->sendAsyncRequest($request); + $promise = $this->httpClient->sendAsyncRequest($request); + + return new SparkPostPromise($promise); } - public function getHttpHeaders() + public function getHttpHeaders($headers) { return [ 'Authorization' => $this->options['key'], @@ -87,7 +93,7 @@ class SparkPost throw new \Exception('You must provide an API key'); } - $this->options = $this->options || self::$defaultOptions; + $this->options = isset($this->options) ? $this->options : self::$defaultOptions; // set options, overriding defaults foreach ($options as $option => $value) { @@ -96,4 +102,7 @@ class SparkPost } } } + + private function setupEndpoints() { + } } |