PHP library now supports multipart/form-data content-type and binary fields

This commit is contained in:
Evan Seguin
2012-08-28 14:58:21 -07:00
parent eff530a5fa
commit b6939ad164
15 changed files with 168 additions and 103 deletions

View File

@@ -0,0 +1,7 @@
<?php
interface Authentication {
public function handleHeader();
public function handleParams();
}
?>

View File

@@ -0,0 +1,40 @@
<?php
/*
* Mashape PHP Client library.
*
* Copyright (C) 2011 Mashape, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*
* The author of this software is Mashape, Inc.
* For any question or feedback please contact us at: support@mashape.com
*
*/
class AuthenticationUtil {
public static function generateAuthenticationHeader($publicKey, $privateKey) {
$header = "";
if (!($publicKey == null || $privateKey == null)) {
$hash = hash_hmac("sha1", $publicKey, $privateKey);
$header = "X-Mashape-Authorization: " . base64_encode($publicKey . ":" . $hash);
}
return $header;
}
}
?>

View File

@@ -0,0 +1,24 @@
<?php
require_once(dirname(__FILE__) . "/HeaderAuthentication.php");
class BasicAuthentication extends HeaderAuthentication {
private $header;
function __construct($username, $password) {
$headerValue = $username . ":" . $password;
$this->header = "Authorization: Basic " . base64_encode($headerValue);
}
public function handleHeader() {
return $this->header;
}
public function handleParams() {
return null;
}
}
?>

View File

@@ -0,0 +1,22 @@
<?php
require_once(dirname(__FILE__) . "/HeaderAuthentication.php");
class CustomHeaderAuthentication extends HeaderAuthentication {
private $header;
function __construct($headerName, $headerValue) {
$this->header = $headerName . ": " . $headerValue;
}
public function handleHeader() {
return $this->header;
}
public function handleParams() {
return null;
}
}
?>

View File

@@ -0,0 +1,9 @@
<?php
require_once(dirname(__FILE__) . "/Authentication.php");
abstract class HeaderAuthentication implements Authentication {
public function handleParams() {
return null;
}
}
?>

View File

@@ -0,0 +1,18 @@
<?php
require_once(dirname(__FILE__) . "/AuthenticationUtil.php");
require_once(dirname(__FILE__) . "/HeaderAuthentication.php");
class MashapeAuthentication extends HeaderAuthentication {
private $header;
function __construct($publicKey, $privateKey) {
$this->header = AuthenticationUtil::generateAuthenticationHeader($publicKey, $privateKey);
}
public function handleHeader() {
return $this->header;
}
}
?>

View File

@@ -0,0 +1,21 @@
<?php
require_once(dirname(__FILE__) . "/Authentication.php");
class QueryAuthentication implements Authentication {
private $params;
function __construct($queryKey, $queryValue) {
$this->params = array($queryKey => $queryValue);
}
public function handleHeader() {
return null;
}
public function handleParams() {
return $this->params;
}
}
?>