Fix /privatedata/getattribute route

This commit is contained in:
Bart Visscher 2012-07-31 23:26:15 +02:00
parent 71918a820f
commit 7426217e76
2 changed files with 8 additions and 4 deletions

View File

@ -38,14 +38,16 @@ class OC_API {
* @param callable $action the function to run
* @param string $app the id of the app registering the call
*/
public static function register($method, $url, $action, $app){
public static function register($method, $url, $action, $app,
$defaults = array(),
$requirements = array()){
$name = strtolower($method).$url;
$name = str_replace(array('/', '{', '}'), '_', $name);
if(!isset(self::$actions[$name])){
OC::$router->create($name, $url.'.{_format}')
->method($method)
->defaults(array('_format' => 'xml'))
->requirements(array('_format' => 'xml|json'))
->defaults(array('_format' => 'xml') + $defaults)
->requirements(array('_format' => 'xml|json') + $requirements)
->action('OC_API', 'call');
self::$actions[$name] = array();
}
@ -112,7 +114,7 @@ class OC_API {
private static function respond($response, $format='json'){
if ($format == 'json') {
echo json_encode($response);
} else if ($format == 'xml') {
//} else if ($format == 'xml') {
// TODO array to xml
} else {
var_dump($format, $response);

View File

@ -12,6 +12,8 @@ OC_API::register('post', '/person/check', array('OC_OCS_Person', 'check'), 'ocs'
// Activity
OC_API::register('get', '/activity', array('OC_OCS_Activity', 'activityGet'), 'ocs');
// Privatedata
OC_API::register('get', '/privatedata/getattribute', array('OC_OCS_Privatedata', 'get'), 'ocs', array('app' => '', 'key' => ''));
OC_API::register('get', '/privatedata/getattribute/{app}', array('OC_OCS_Privatedata', 'get'), 'ocs', array('key' => ''));
OC_API::register('get', '/privatedata/getattribute/{app}/{key}', array('OC_OCS_Privatedata', 'get'), 'ocs');
OC_API::register('post', '/privatedata/setattribute/{app}/{key}', array('OC_OCS_Privatedata', 'set'), 'ocs');
OC_API::register('post', '/privatedata/deleteattribute/{app}/{key}', array('OC_OCS_Privatedata', 'delete'), 'ocs');