[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/externals/restful/src/RESTful/ -> Client.php (source)

   1  <?php
   2  
   3  namespace RESTful;
   4  
   5  use RESTful\Exceptions\HTTPError;
   6  use RESTful\Settings;
   7  
   8  class Client
   9  {
  10      public function __construct($settings_class, $request_class = null, $convert_error = null)
  11      {
  12          $this->request_class = $request_class == null ? '\Httpful\Request' : $request_class;
  13          $this->settings_class = $settings_class;
  14          $this->convert_error = $convert_error;
  15      }
  16  
  17      public function get($uri)
  18      {
  19          $settings_class = $this->settings_class;
  20          $url = $settings_class::$url_root . $uri;
  21          $request_class = $this->request_class;
  22          $request = $request_class::get($url);
  23  
  24          return $this->_op($request);
  25      }
  26  
  27      public function post($uri, $payload)
  28      {
  29          $settings_class = $this->settings_class;
  30          $url = $settings_class::$url_root . $uri;
  31          $request_class = $this->request_class;
  32          $request = $request_class::post($url, $payload, 'json');
  33  
  34          return $this->_op($request);
  35      }
  36  
  37      public function put($uri, $payload)
  38      {
  39          $settings_class = $this->settings_class;
  40          $url = $settings_class::$url_root . $uri;
  41          $request_class = $this->request_class;
  42          $request = $request_class::put($url, $payload, 'json');
  43  
  44          return $this->_op($request);
  45      }
  46  
  47      public function delete($uri)
  48      {
  49          $settings_class = $this->settings_class;
  50          $url = $settings_class::$url_root . $uri;
  51          $request_class = $this->request_class;
  52          $request = $request_class::delete($url);
  53  
  54          return $this->_op($request);
  55      }
  56  
  57      private function _op($request)
  58      {
  59          $settings_class = $this->settings_class;
  60          $user_agent = $settings_class::$agent . '/' . $settings_class::$version;
  61          $request->headers['User-Agent'] = $user_agent;
  62          if ($settings_class::$api_key != null) {
  63              $request = $request->authenticateWith($settings_class::$api_key, '');
  64          }
  65          $request->expects('json');
  66          $response = $request->sendIt();
  67          if ($response->hasErrors() || $response->code == 300) {
  68              if ($this->convert_error != null) {
  69                  $error = call_user_func($this->convert_error, $response);
  70              } else {
  71                  $error = new HTTPError($response);
  72              }
  73              throw $error;
  74          }
  75  
  76          return $response;
  77      }
  78  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1