/** * @desc Tests overridable values are set while invalid values are ignored */ public function testSetConfigMultipleValuesAndGetConfig() { SparkPost::setConfig(array('key' => 'lala', 'version' => 'v8', 'port' => 1024, 'someOtherValue' => 'fakeValue')); $testConfig = SparkPost::getConfig(); $this->assertEquals('lala', $testConfig['key']); $this->assertEquals('v8', $testConfig['version']); $this->assertEquals(1024, $testConfig['port']); $this->assertNotContains('someOtherValue', array_keys($testConfig)); $this->assertEquals('https', $testConfig['protocol']); $this->assertEquals('api.sparkpost.com', $testConfig['host']); $this->assertEquals(true, $testConfig['strictSSL']); }
public function testSetMessageFactory() { $messageFactory = Mockery::mock(MessageFactory::class); $this->resource->setMessageFactory($messageFactory); $this->assertEquals($messageFactory, NSA::invokeMethod($this->resource, 'getMessageFactory')); }
/** * @desc Private Method for issuing GET request to Transmissions API * * This method is responsible for getting the collection _and_ * a specific entity from the Transmissions API * * If TransmissionID parameter is omitted, then we fetch the collection * * @param string $transmissionID (optional) string Transmission ID of specific Transmission to retrieve * @return array Result set of transmissions found */ private static function fetch($transmissionID = null) { //figure out the url $hostConfig = SparkPost::getConfig(); $url = self::getBaseUrl($hostConfig); if (!is_null($transmissionID)) { $url .= '/' . $transmissionID; } $request = self::getHttpClient(); //make request try { $response = $request->get($url, array('authorization' => $hostConfig['key']), array("verify" => $hostConfig['strictSSL']))->send(); return $response->json(); } catch (ClientErrorResponseException $exception) { $response = $exception->getResponse(); $statusCode = $response->getStatusCode(); if ($statusCode === 404) { throw new \Exception("The specified Transmission ID does not exist", 404); } throw new \Exception("Received bad response from Transmission API: " . $statusCode); } catch (\Exception $exception) { throw new \Exception('Unable to contact Transmissions API: ' . $exception->getMessage()); } }
<?php /*Cron will automaticly run this program every minute, seeing which polls are old. Old polls have their data sent to the specified email and are removed.*/ namespace Examples\Transmisson; require_once "config.php"; require 'vendor/autoload.php'; use SparkPost\SparkPost; use SparkPost\Transmission; SparkPost::setConfig(["key" => SPARK_KEY]); $result = $db->query("SELECT * FROM poll WHERE end_time < NOW()"); while ($row = $result->fetch_array()) { try { $results = Transmission::send(array("from" => "From Envelope <*****@*****.**>", "recipients" => array(array("address" => array("email" => $row['email']))), "template" => "suggest-app-poll-dat", 'substitutionData' => $row)); } catch (\Exception $exception) { echo $exception->getMessage(); } } $db->query("DELETE FROM poll WHERE end_time < NOW()");
<?php namespace Examples\Transmisson; require_once dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use SparkPost\Transmission; $key = 'YOURAPIKEY'; SparkPost::setConfig(array('key' => $key)); try { $results = Transmission::send(array("campaign" => "my-campaign", "metadata" => array("sample_campaign" => true, "type" => "these are custom fields"), "substitutionData" => array("name" => "Test Name"), "description" => "my description", "replyTo" => "*****@*****.**", "customHeaders" => array("X-Custom-Header" => "Sample Custom Header"), "trackOpens" => false, "trackClicks" => false, "from" => "From Envelope <*****@*****.**>", "html" => "<p>Hello World! Your name is: {{name}}</p>", "text" => "Hello World!", "subject" => "Example Email: {{name}}", "recipients" => array(array("address" => array("email" => "*****@*****.**"))))); echo 'Congrats you can use your SDK!'; } catch (\Exception $exception) { echo $exception->getMessage(); }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('PUT', 'templates/TEMPLATE_ID', ['options' => ['open_tracking' => true]]); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('POST', 'templates', ["name" => "PHP example template", "content" => ["from" => "from@YOUR_DOMAIN", "subject" => "Your Subject", "html" => "<b>Write your message here.</b>"]]); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('GET', 'message-events', ['campaign_ids' => 'CAMPAIGN_ID']); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('GET', 'templates'); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('DELETE', 'templates/TEMPLATE_ID'); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('GET', 'templates/TEMPLATE_ID?draft=true'); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
<?php namespace Examples\Unwrapped; require_once dirname(__FILE__) . '/../bootstrap.php'; //pull in API key config $configFile = file_get_contents(dirname(__FILE__) . '/../example-config.json'); $config = json_decode($configFile, true); use SparkPost\SparkPost; use GuzzleHttp\Client; use Ivory\HttpAdapter\Guzzle6HttpAdapter; $httpAdapter = new Guzzle6HttpAdapter(new Client()); $sparky = new SparkPost($httpAdapter, ['key' => $config['api-key']]); try { // define the endpoint $sparky->setupUnwrapped('templates'); $templateConfig = ['name' => 'Summer Sale!', 'id' => 'summer-sale', 'content' => ['from' => '*****@*****.**', 'subject' => 'Summer deals', 'html' => '<b>Check out these deals!</b>']]; $results = $sparky->templates->create($templateConfig); echo 'Congrats you can use your SDK!'; } catch (\Exception $exception) { echo $exception->getMessage(); }
<?php namespace Examples\Templates; require dirname(__FILE__) . '/../bootstrap.php'; use SparkPost\SparkPost; use GuzzleHttp\Client; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $httpClient = new GuzzleAdapter(new Client()); /* * configure options in example-options.json */ $sparky = new SparkPost($httpClient, $options); $promise = $sparky->request('POST', 'templates/TEMPLATE_ID/preview?draft=true', ['substitution_data' => ['some_key' => 'some_value']]); try { $response = $promise->wait(); echo $response->getStatusCode() . "\n"; print_r($response->getBody()) . "\n"; } catch (\Exception $e) { echo $e->getCode() . "\n"; echo $e->getMessage() . "\n"; }
/** * (non-PHPdoc) * @before * @see PHPUnit_Framework_TestCase::setUp() */ public function setUp() { SparkPost::setConfig(array('key' => 'blah')); $this->client = self::getMethod('getHttpClient')->invoke(null); //so we can bootstrap api responses }