summaryrefslogtreecommitdiffstats
path: root/lib/SparkPost/SparkPost.php
diff options
context:
space:
mode:
authorAvi Goldman <avrahamymgoldman@gmail.com>2016-06-10 10:15:49 -0400
committerAvi Goldman <avrahamymgoldman@gmail.com>2016-06-10 10:15:49 -0400
commit425bc01d8b2915f114032777e03046cdd5884453 (patch)
treea0b96315484e112272c4d53b9805b438a5685e9d /lib/SparkPost/SparkPost.php
parent45657aeff2eabb9974676471f2924eeed1b4fb29 (diff)
downloadphp-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.php27
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() {
+ }
}