diff options
Diffstat (limited to 'Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Http/REST.php')
-rw-r--r-- | Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Http/REST.php | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Http/REST.php b/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Http/REST.php deleted file mode 100644 index 2e0e677..0000000 --- a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Http/REST.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -require_once realpath(dirname(__FILE__) . '/../../../autoload.php'); - -/** - * This class implements the RESTful transport of apiServiceRequest()'s - * - * @author Chris Chabot <chabotc@google.com> - * @author Chirag Shah <chirags@google.com> - */ -class Postman_Google_Http_REST -{ - /** - * Executes a Postman_Google_Http_Request - * - * @param Postman_Google_Client $client - * @param Postman_Google_Http_Request $req - * @return array decoded result - * @throws Postman_Google_Service_Exception on server side error (ie: not authenticated, - * invalid or malformed post body, invalid url) - */ - public static function execute(Postman_Google_Client $client, Postman_Google_Http_Request $req) - { - $httpRequest = $client->getIo()->makeRequest($req); - $httpRequest->setExpectedClass($req->getExpectedClass()); - return self::decodeHttpResponse($httpRequest, $client); - } - - /** - * Decode an HTTP Response. - * @static - * @throws Postman_Google_Service_Exception - * @param Postman_Google_Http_Request $response The http response to be decoded. - * @param Postman_Google_Client $client - * @return mixed|null - */ - public static function decodeHttpResponse($response, Postman_Google_Client $client = null) - { - $code = $response->getResponseHttpCode(); - $body = $response->getResponseBody(); - $decoded = null; - - if ((intVal($code)) >= 300) { - $decoded = json_decode($body, true); - $err = 'Error calling ' . $response->getRequestMethod() . ' ' . $response->getUrl(); - if (isset($decoded['error']) && - isset($decoded['error']['message']) && - isset($decoded['error']['code'])) { - // if we're getting a json encoded error definition, use that instead of the raw response - // body for improved readability - $err .= ": ({$decoded['error']['code']}) {$decoded['error']['message']}"; - } else { - $err .= ": ($code) $body"; - } - - $errors = null; - // Specific check for APIs which don't return error details, such as Blogger. - if (isset($decoded['error']) && isset($decoded['error']['errors'])) { - $errors = $decoded['error']['errors']; - } - - if ($client) { - $client->getLogger()->error( - $err, - array('code' => $code, 'errors' => $errors) - ); - } - throw new Postman_Google_Service_Exception($err, $code, null, $errors); - } - - // Only attempt to decode the response, if the response code wasn't (204) 'no content' - if ($code != '204') { - $decoded = json_decode($body, true); - if ($decoded === null || $decoded === "") { - $error = "Invalid json in service response: $body"; - if ($client) { - $client->getLogger()->error($error); - } - throw new Postman_Google_Service_Exception($error); - } - - if ($response->getExpectedClass()) { - $class = $response->getExpectedClass(); - $decoded = new $class($decoded); - } - } - return $decoded; - } - - /** - * Parse/expand request parameters and create a fully qualified - * request uri. - * @static - * @param string $servicePath - * @param string $restPath - * @param array $params - * @return string $requestUrl - */ - public static function createRequestUri($servicePath, $restPath, $params) - { - $requestUrl = $servicePath . $restPath; - $uriTemplateVars = array(); - $queryVars = array(); - foreach ($params as $paramName => $paramSpec) { - if ($paramSpec['type'] == 'boolean') { - $paramSpec['value'] = ($paramSpec['value']) ? 'true' : 'false'; - } - if ($paramSpec['location'] == 'path') { - $uriTemplateVars[$paramName] = $paramSpec['value']; - } else if ($paramSpec['location'] == 'query') { - if (isset($paramSpec['repeated']) && is_array($paramSpec['value'])) { - foreach ($paramSpec['value'] as $value) { - $queryVars[] = $paramName . '=' . rawurlencode($value); - } - } else { - $queryVars[] = $paramName . '=' . rawurlencode($paramSpec['value']); - } - } - } - - if (count($uriTemplateVars)) { - $uriTemplateParser = new Postman_Google_Utils_URITemplate(); - $requestUrl = $uriTemplateParser->parse($requestUrl, $uriTemplateVars); - } - - if (count($queryVars)) { - $requestUrl .= '?' . implode($queryVars, '&'); - } - - return $requestUrl; - } -} |