208941); echo "GETTING ADDRESSES
"; $request = new RestRequest(API_URL.'/addresses/', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->buildPostBody($data); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGetAddress() { echo "GETTING ADDRESSES
"; $request = new RestRequest(API_URL.'/addresses/9', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testUpdateAddress() { echo "UPDATE ADDRESS
"; $data = array('address' => "5919 S 118TH CIR STE 250", 'last_name' => "Doe Jr.", 'email' => "me@johndoe.com", 'password' => "newsecret" ); $request = new RestRequest(API_URL.'/subscribers/9/', 'PUT'); $request->buildPostBody($data); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo json_encode($data).'
'; echo $request->getResponseBody(); } function testCreateAddress() { echo "CREATING ADDRESS
"; $data = array('address' => '5919 S 118TH CIR STE 250', 'city' => 'OMAHA', 'state' => 'NE', 'subscriber_id' => '100', 'zip_code' => '68137', 'company' => 'My Company', 'country' => 'USA', 'first_name' => 'John', 'last_name' => 'Doe' ); $request = new RestRequest(API_URL.'/addresses/', 'POST'); $request->buildPostBody($data); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo json_encode($data).'
'; echo $request->getResponseBody(); } function testDeleteSubscription() { echo "DELETE SUBSCRIPTION
"; $request = new RestRequest(API_URL.'/subscriptions/9/', 'DELETE'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testUpdateSubscription() { echo "PUT SUBSCRIPTION
"; $data = array('copies' => 2, 'issues' => 12, ); $request = new RestRequest(API_URL.'/subscriptions/5/', 'PUT'); $request->buildPostBody($data); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo json_encode($data).'
'; echo $request->getResponseBody(); } function testSubscriberCustomFieldSet() { echo "SET SUBSCRIBER CUSTOM FIELDS
"; $data = array('subscriber_id' => 22); $data['fields'] = array( array('field_id' => 34, 'value' => 'value1test'), array('field_id' => 265, 'value' => 'value2test') ); $request = new RestRequest(API_URL.'/customfields/', 'PUT'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->buildPostBody($data); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testSubscriberCustomFieldsGet() { echo "GET SUBSCRIBER CUSTOM FIELDS
"; $request = new RestRequest(API_URL.'/customfields/30000', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGettingSingleBundle() { echo "GETTING SINGLE BUNDLE
"; $request = new RestRequest(API_URL.'/bundles/1', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGetBundlesList() { $data = array('active' => true, 'promotional' => true, 'min_price' => 10.00, 'max_price' => 15.00); echo "GETTING BUNDLES
"; $request = new RestRequest(API_URL.'/bundles/', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->buildPostBody($data); $request->execute(); echo json_encode($data)."
"; echo $request->getResponseBody()."
"; } function testGetCustomFields() { echo "GETTING CUSTOM FIELDS
"; $request = new RestRequest(API_URL.'/customfields/', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGetPublicationList() { echo "GETTING PUBLICATIONS
"; $request = new RestRequest(API_URL.'/publications/', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGetPublication() { echo "GETTING SINGLE PUBLICATION
"; $request = new RestRequest(API_URL.'/publications/9', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testCreateSubscriber() { echo "CREATING SUBSCRIBER
"; $data = array('first_name' => "John", 'last_name' => "Doe", 'email' => 'test@test.com', 'password' => "secret" ); $request = new RestRequest(API_URL.'/subscribers/', 'POST'); $request->buildPostBody($data); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo json_encode($data).'
'; echo $request->getResponseBody(); } function testGetSubscriber() { echo "GET SUBSCRIBER
"; $request = new RestRequest(API_URL.'/subscribers/1023', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testUpdateSubscriber() { echo "PUT SUBSCRIBER
"; $data = array('first_name' => "John", 'last_name' => "Doe", 'email' => "test@test.com", 'password' => "secret" ); $request = new RestRequest(API_URL.'/subscribers/9/', 'PUT'); $request->buildPostBody($data); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo json_encode($data).'
'; echo $request->getResponseBody(); } function testDeleteSubscriber() { echo "DELETE SUBSCRIBER
"; $request = new RestRequest(API_URL.'/subscribers/4/', 'DELETE'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGetSubscriptionList() { $data = array('type' => 'PRINT', 'issues_left' => 5, 'limit' => 3); echo "GET SUBSCRIPTION LIST
"; $request = new RestRequest(API_URL.'/subscriptions/', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->buildPostBody($data); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testGetSingleSubscription() { echo "GET SINGLE SUBSCRIPTION
"; $request = new RestRequest(API_URL.'/subscriptions/5', 'GET'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } function testCreateSubscription() { echo "CREATE SUBSCRIPTION
"; $data = array('publication_id' => 9, 'mailing_address_id' => '10', 'issues' => 10, 'type' => 'PRINT', 'copies' => 1, 'subscriber_id' => 10); $request = new RestRequest(API_URL.'/subscriptions/', 'POST'); $request->setUsername(API_KEY); $request->setPassword(API_PASSWORD); $request->buildPostBody($data); $request->execute(); echo "Request Data: ".json_encode($data).'
'; echo "Response Data: ".$request->getResponseBody(); } class RestRequest { protected $url; protected $verb; protected $requestBody; protected $requestLength; protected $username; protected $password; protected $acceptType; protected $responseBody; protected $responseInfo; public function __construct ($url = null, $verb = 'GET', $requestBody = null) { $this->url = $url; $this->verb = $verb; $this->requestBody = $requestBody; $this->requestLength = 0; $this->username = null; $this->password = null; $this->acceptType = 'application/json'; $this->responseBody = null; $this->responseInfo = null; if ($this->requestBody !== null) { $this->buildPostBody(); } } public function flush () { $this->requestBody = null; $this->requestLength = 0; $this->verb = 'GET'; $this->responseBody = null; $this->responseInfo = null; } public function execute() { $ch = curl_init(); $this->setAuth($ch); try { switch (strtoupper($this->verb)) { case 'GET': $this->executeGet($ch); break; case 'POST': $this->executePost($ch); break; case 'PUT': $this->executePut($ch); break; case 'DELETE': $this->executeDelete($ch); break; default: throw new InvalidArgumentException('Current verb (' . $this->verb . ') is an invalid REST verb.'); } } catch (InvalidArgumentException $e) { curl_close($ch); throw $e; } catch (Exception $e) { curl_close($ch); throw $e; } } public function buildPostBody ($data = null) { $data = ($data !== null) ? $data : $this->requestBody; if (!is_array($data)) { throw new InvalidArgumentException('Invalid data input for postBody. Array expected'); } $data = http_build_query($data, '', '&'); $this->requestBody = $data; } protected function executeGet ($ch) { $this->doExecute($ch); } protected function executePost ($ch) { if (!is_string($this->requestBody)) { $this->buildPostBody(); } curl_setopt($ch, CURLOPT_POSTFIELDS, $this->requestBody); curl_setopt($ch, CURLOPT_POST, 1); $this->doExecute($ch); } protected function executePut ($ch) { if (!is_string($this->requestBody)) { $this->buildPostBody(); } $this->requestLength = strlen($this->requestBody); $fh = fopen('php://memory', 'rw'); fwrite($fh, $this->requestBody); rewind($fh); curl_setopt($ch, CURLOPT_INFILE, $fh); curl_setopt($ch, CURLOPT_INFILESIZE, $this->requestLength); curl_setopt($ch, CURLOPT_PUT, true); $this->doExecute($ch); fclose($fh); } protected function executeDelete ($ch) { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); $this->doExecute($ch); } protected function doExecute (&$curlHandle) { $this->setCurlOpts($curlHandle); $this->responseBody = curl_exec($curlHandle); $this->responseInfo = curl_getinfo($curlHandle); curl_close($curlHandle); } protected function setCurlOpts (&$curlHandle) { if((strtoupper($this->verb) == 'GET') && $this->requestBody) $url = $this->url."?".$this->requestBody; else $url = $this->url; curl_setopt($curlHandle, CURLOPT_TIMEOUT, 10); curl_setopt($curlHandle, CURLOPT_URL, $url); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true); curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array ('Accept: ' . $this->acceptType)); } protected function setAuth (&$curlHandle) { if ($this->username !== null && $this->password !== null) { curl_setopt($curlHandle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curlHandle, CURLOPT_USERPWD, $this->username . ':' . $this->password); } } public function getAcceptType () { return $this->acceptType; } public function setAcceptType ($acceptType) { $this->acceptType = $acceptType; } public function getPassword () { return $this->password; } public function setPassword ($password) { $this->password = $password; } public function getResponseBody () { return $this->responseBody; } public function getResponseInfo () { return $this->responseInfo; } public function getUrl () { return $this->url; } public function setUrl ($url) { $this->url = $url; } public function getUsername () { return $this->username; } public function setUsername ($username) { $this->username = $username; } public function getVerb () { return $this->verb; } public function setVerb ($verb) { $this->verb = $verb; } } ?>