2015-06-11 16:44:52 -04:00
|
|
|
<?php
|
2015-06-16 11:11:35 -04:00
|
|
|
/**
|
|
|
|
* Base API Model
|
|
|
|
*/
|
2015-06-11 16:44:52 -04:00
|
|
|
|
|
|
|
use \GuzzleHttp\Client;
|
|
|
|
use \GuzzleHttp\Cookie\CookieJar;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Base model for api interaction
|
|
|
|
*/
|
|
|
|
class BaseApiModel extends BaseModel {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The Guzzle http client object
|
|
|
|
* @var object $client
|
|
|
|
*/
|
|
|
|
protected $client;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Cookie jar object for api requests
|
|
|
|
* @var object $cookieJar
|
|
|
|
*/
|
|
|
|
protected $cookieJar;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructor
|
|
|
|
*/
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
parent::__construct();
|
|
|
|
|
|
|
|
$this->cookieJar = new CookieJar();
|
|
|
|
$this->client = new Client([
|
|
|
|
'base_url' => $this->base_url,
|
|
|
|
'defaults' => [
|
|
|
|
'cookies' => $this->cookieJar,
|
|
|
|
'headers' => [
|
|
|
|
'User-Agent' => $_SERVER['HTTP_USER_AGENT'],
|
|
|
|
'Accept-Encoding' => 'application/json'
|
|
|
|
],
|
|
|
|
'timeout' => 5,
|
|
|
|
'connect_timeout' => 5
|
|
|
|
]
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the full url path, since the base_url in Guzzle doesn't work correctly
|
|
|
|
*
|
|
|
|
* @param string $path
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
protected function _url($path)
|
|
|
|
{
|
|
|
|
return "{$this->base_url}{$path}";
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
// End of BaseApiModel.php
|