protected static function ClientsServicesBase::doCall in Web Service Clients 6
Takes variable number of params after cacheid.
2 calls to ClientsServicesBase::doCall()
- ClientsServicesDrupal::fetch in backends/
clients_drupal/ clients_drupal.inc - Gets raw data from service call
- ClientsServicesFlickr::call in backends/
clients_flickr/ clients_flickr.inc - Executes call and processes data
File
- ./
clients.inc, line 17 - Base class for backends. Handles XML-RPC, REST calls and caching results
Class
Code
protected static function doCall($method, $cacheid) {
$args = func_get_args();
$args = array_slice($args, 2);
// any extra params passed to this argument
$cache_table = 'cache_clients';
$cache_time = variable_get('clients_api_cache_time', '0');
if ($cache_time == '0' || !($result = cache_get($cacheid, $cache_table))) {
if ($method == 'xmlrpc') {
$data = call_user_func_array('xmlrpc', $args);
}
elseif ($method == 'rest') {
$data = call_user_func_array('drupal_http_request', $args);
}
else {
$data = t('@method not yet supported', array(
'@method' => $method,
));
}
// @todo error handling/reporting
if ($cache_time != '0') {
cache_set($cacheid, $data, $cache_table, $cache_time == 'cron' ? CACHE_TEMPORARY : time() + (int) $cache_time * 60);
}
$result = new stdClass();
$result->data = $data;
$result->created = time();
}
return $result;
}