Files
Phraseanet/lib/classes/Bridge/Api/Abstract.class.php
Romain Neutron 4c5b7eb658 V 3.5 RC 1
2011-12-05 00:23:28 +01:00

182 lines
3.5 KiB
PHP

<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2010 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
*
* @package Bridge
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link www.phraseanet.com
*/
abstract class Bridge_Api_Abstract
{
/**
*
* @var Bridge_Api_Auth_Interface
*/
protected $_auth;
/**
*
* @var string
*/
protected $locale = 'en_US';
/**
*
* @param registryInterface $registry
* @param Bridge_Api_Auth_Interface $auth
* @return Bridge_Api_Abstract
*/
public function __construct(registryInterface $registry, Bridge_Api_Auth_Interface $auth)
{
$this->registry = $registry;
$this->_auth = $auth;
$this->initialize_transport();
$this->set_auth_params();
return $this;
}
/**
*
* @param Bridge_AccountSettings $settings
* @return Bridge_Api_Abstract
*/
public function set_auth_settings(Bridge_AccountSettings &$settings)
{
$this->_auth->set_settings($settings);
$this->set_transport_authentication_params();
return $this;
}
/**
*
* @return Array The result of the primary handshake, Including tokens and others
*/
public function connect()
{
if (!$this->is_configured())
throw new Bridge_Exception_ApiConnectorNotConfigured('Connector not configured');
$request_token = $this->_auth->parse_request_token();
return $this->_auth->connect($request_token);
}
/**
*
* @return Bridge_Api_Abstract
*/
public function reconnect()
{
if (!$this->is_configured())
throw new Bridge_Exception_ApiConnectorNotConfigured();
$this->_auth->reconnect();
return $this;
}
/**
*
* @return Bridge_Api_Abstract
*/
public function disconnect()
{
if (!$this->is_configured())
throw new Bridge_Exception_ApiConnectorNotConfigured();
$this->_auth->disconnect();
return $this;
}
/**
*
* @return boolean
*/
public function is_connected()
{
return $this->_auth->is_connected();
}
/**
*
* @return string
*/
public function get_auth_url($supp_params = array())
{
return $this->_auth->get_auth_url($supp_params);
}
/**
*
* @param string $locale
* @return Bridge_Api_Abstract
*/
public function set_locale($locale)
{
$this->locale = $locale;
return $this;
}
/**
*
* @return string
*/
public function get_locale()
{
return $this->locale;
}
/**
*
* @param type $object_id
* @return boolean
*/
public function is_valid_object_id($object_id)
{
return is_scalar($object_id) && !is_bool($object_id);
}
/**
* This method is called when calling any API method
* This allows use to change the exception object.
* For instance, you can set it to a Bridge_Exception_ActionAuthNeedReconnect
*
* @param Exception $e
* @return Void
*/
public function handle_exception(Exception &$e)
{
return;
}
/**
* The method to initialize Authentication transport
* It's called on constructor
*/
abstract protected function initialize_transport();
/**
* The method used to set the connection params to the auth object
* It's called after transport initialization
*/
abstract protected function set_auth_params();
/**
* Set the transport authentication params to the auth object
* It's called, every time the settings are set
*/
abstract protected function set_transport_authentication_params();
}