Skip to content

Commit

Permalink
Updating client to be compliant with RFC 2616: case-insensitive headers
Browse files Browse the repository at this point in the history
  • Loading branch information
douglasmiller committed Oct 1, 2020
1 parent 72afabd commit b1fe520
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 20 deletions.
19 changes: 11 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
language: php
php:
- 7.2
- 7.1
- 7.0
- 5.6
- 5.5
- 5.4
- hhvm
jobs:
include:
- php: 7.2
- php: 7.1
- php: 7.0
- php: 5.6
- php: 5.5
dist: precise
- php: 5.4
dist: precise
- php: hhvm
sudo: false
dist: trusty
install:
Expand Down
6 changes: 4 additions & 2 deletions Tests/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,10 @@ protected function responseFromFixture($filename) {
break;
}
preg_match('/([^:]+): (.*)/', $fixture[$i], $matches);
if (sizeof($matches) > 2)
$headers[$matches[1]] = $matches[2];
if (sizeof($matches) > 2) {
$headerKey = strtolower($matches[1]);
$headers[$headerKey] = $matches[2];
}
}

if ($bodyLineNumber < sizeof($fixture))
Expand Down
8 changes: 5 additions & 3 deletions lib/recurly/client.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class Recurly_Client
*/
private $_acceptLanguage = 'en-US';

const API_CLIENT_VERSION = '2.10.6';
const API_CLIENT_VERSION = '2.10.7';
const DEFAULT_ENCODING = 'UTF-8';

const GET = 'GET';
Expand Down Expand Up @@ -203,8 +203,10 @@ private function _getHeaders($headerText)
$returnHeaders = array();
foreach ($headers as &$header) {
preg_match('/([^:]+): (.*)/', $header, $matches);
if (sizeof($matches) > 2)
$returnHeaders[$matches[1]] = $matches[2];
if (sizeof($matches) > 2) {
$headerKey = strtolower($matches[1]);
$returnHeaders[$headerKey] = $matches[2];
}
}
return $returnHeaders;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/recurly/coupon.php
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ public function generate($number) {
$response->assertValidResponse();

$coupons = array();
foreach (new Recurly_UniqueCouponCodeList($response->headers['Location'], $this->_client) as $coupon) {
foreach (new Recurly_UniqueCouponCodeList($response->headers['location'], $this->_client) as $coupon) {
$coupons[] = $coupon;
if (count($coupons) == $number) break;
}
Expand Down
8 changes: 4 additions & 4 deletions lib/recurly/pager.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ abstract class Recurly_Pager extends Recurly_Base implements Iterator, Countable
public function count() {
if (isset($this->_href)) {
$headers = Recurly_Base::_head($this->_href, $this->_client);
if (isset($headers['X-Records'])) {
return intval($headers['X-Records']);
if (isset($headers['x-records'])) {
return intval($headers['x-records']);
}
} elseif (isset($this->_objects) && is_array($this->_objects)) {
return count($this->_objects);
Expand Down Expand Up @@ -132,8 +132,8 @@ protected static function _setState($params, $state) {
private function _loadLinks($response) {
$this->_links = array();

if (isset($response->headers['Link'])) {
$links = $response->headers['Link'];
if (isset($response->headers['link'])) {
$links = $response->headers['link'];
preg_match_all('/\<([^>]+)\>; rel=\"([^"]+)\"/', $links, $matches);
if (sizeof($matches) > 2) {
for ($i = 0; $i < sizeof($matches[1]); $i++) {
Expand Down
4 changes: 2 additions & 2 deletions lib/recurly/response.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ public function assertSuccessResponse($object)
*/
public function assertValidResponse()
{
if (!empty($this->headers['Recurly-Deprecated'])) {
error_log("WARNING: API version {$this->headers['X-Api-Version']} is deprecated and will only be available until {$this->headers['Recurly-Sunset-Date']}. Please upgrade the Recurly PHP client.");
if (!empty($this->headers['recurly-deprecated'])) {
error_log("WARNING: API version {$this->headers['x-api-version']} is deprecated and will only be available until {$this->headers['recurly-sunset-date']}. Please upgrade the Recurly PHP client.");
}

// Successful response code
Expand Down

0 comments on commit b1fe520

Please sign in to comment.