From 8d85606082366517763703044e68055120d035b2 Mon Sep 17 00:00:00 2001 From: Colin Rickels Date: Mon, 10 Oct 2016 16:42:28 -0400 Subject: [PATCH 1/2] #version 001 --- Services/FullContact.php | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/Services/FullContact.php b/Services/FullContact.php index f7be1f7..a6f0735 100644 --- a/Services/FullContact.php +++ b/Services/FullContact.php @@ -60,36 +60,21 @@ public function __construct($api_key) $this->_apiKey = $api_key; } - /** - * This sets the webhook url for all requests made for this service - * instance. To unset, just use setWebhookUrl(null). - * - * @author David Boskovic @dboskovic - * @param string $url - * @param string $id - * @return object - */ - public function setWebhookUrl($url, $id = null) { - $this->_webhookUrl = $url; - $this->_webhookId = $id; - return $this; - } - /** * This is a pretty close copy of my work on the Contactually PHP library * available here: http://github.com/caseysoftware/contactually-php * * @author Keith Casey - * @author David Boskovic @dboskovic * @param array $params * @return object * @throws Services_FullContact_Exception_NotImplemented */ + protected function _execute($params = array()) { if(!in_array($params['method'], $this->_supportedMethods)){ throw new Services_FullContact_Exception_NotImplemented(__CLASS__ . - " does not support the [" . $params['method'] . "] method"); + " does not support the [" . $params['method'] . "] method"); } $params['apiKey'] = $this->_apiKey; @@ -97,23 +82,35 @@ protected function _execute($params = array()) if($this->_webhookUrl) { $params['webhookUrl'] = $this->_webhookUrl; } - if($this->_webhookId) { $params['webhookId'] = $this->_webhookId; } $fullUrl = $this->_baseUri . $this->_version . $this->_resourceUri . - '?' . http_build_query($params); + '?' . http_build_query($params); //open connection $connection = curl_init($fullUrl); curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1); curl_setopt($connection, CURLOPT_USERAGENT, self::USER_AGENT); + curl_setopt($connection, CURLOPT_HEADER, 1); //execute request $this->response_json = curl_exec($connection); $this->response_code = curl_getinfo($connection, CURLINFO_HTTP_CODE); - $this->response_obj = json_decode($this->response_json); + + preg_match_all('/X-Rate-Limit-.{0,}/',$this->response_json, $out, PREG_PATTERN_ORDER); + preg_match("/\d{1,}/",$out[0][0],$limit); + preg_match("/\d{1,}/",$out[0][1],$remaining); + preg_match("/\d{1,}/",$out[0][2],$reset); + + $pos = strpos($this->response_json, '{'); + $response = substr($this->response_json, $pos); + + $this->response_obj = json_decode($response); + $this->response_obj->limit = $limit[0]; + $this->response_obj->remaining_calls = $remaining[0]; + $this->response_obj->remaining_seconds = $reset[0]; if ('403' == $this->response_code) { throw new Services_FullContact_Exception_NoCredit($this->response_obj->message); @@ -121,4 +118,6 @@ protected function _execute($params = array()) return $this->response_obj; } + + } \ No newline at end of file From e8903e2a58ecaeaf799960e9edc1d21027442672 Mon Sep 17 00:00:00 2001 From: Colin Rickels Date: Mon, 10 Oct 2016 16:46:44 -0400 Subject: [PATCH 2/2] #version 001 --- Services/FullContact.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Services/FullContact.php b/Services/FullContact.php index a6f0735..8159a97 100644 --- a/Services/FullContact.php +++ b/Services/FullContact.php @@ -86,6 +86,7 @@ protected function _execute($params = array()) $params['webhookId'] = $this->_webhookId; } + $fullUrl = $this->_baseUri . $this->_version . $this->_resourceUri . '?' . http_build_query($params);