1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-04 18:29:40 +02:00
ampache/modules/EchoNest/Api.php
2013-12-28 17:11:16 +01:00

88 lines
2.4 KiB
PHP

<?php
/**
* Abstract class for EchoNest_Api classes
*
* @author Brent Shaffer <bshafs at gmail dot com>
* @license MIT License
*/
abstract class EchoNest_Api implements EchoNest_ApiInterface
{
/**
* The core EchoNest Client
* @var EchoNest_Client
*/
protected
$client,
$options = array();
public function __construct(EchoNest_Client $client, $options = array())
{
$this->client = $client;
$this->options = $options;
}
/**
* Call any path, GET method
* Ex: $api->get('artist/biographies', array('name' => 'More Hazards More Heroes'))
*
* @param string $path the EchoNest path
* @param array $parameters GET parameters
* @param array $requestOptions reconfigure the request
* @return array data returned
*/
protected function get($path, array $parameters = array(), $requestOptions = array())
{
return $this->client->get($path, $parameters, $requestOptions);
}
/**
* Call any path, POST method
* Ex: $api->post('catalog/create', array('type' => 'artist', 'name' => 'My Catalog'))
*
* @param string $path the EchoNest path
* @param array $parameters POST parameters
* @param array $requestOptions reconfigure the request
* @return array data returned
*/
protected function post($path, array $parameters = array(), $requestOptions = array())
{
return $this->client->post($path, $parameters, $requestOptions);
}
/**
* Change an option value.
*
* @param string $name The option name
* @param mixed $value The value
*
* @return EchoNestApiAbstract the current object instance
*/
public function setOption($name, $value)
{
$this->options[$name] = $value;
return $this;
}
/**
* Get an option value.
*
* @param string $name The option name
*
* @return mixed The option value
*/
public function getOption($name, $default = null)
{
return isset($this->options[$name]) ? $this->options[$name] : $default;
}
protected function returnResponse($response, $key = null)
{
if (!is_null($key) && !$this->getOption('raw')) {
return $response[$key];
}
return $response;
}
}