diff --git a/lib/api.php b/lib/api.php index 203b07880f..cf699f547f 100644 --- a/lib/api.php +++ b/lib/api.php @@ -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); diff --git a/ocs/routes.php b/ocs/routes.php index 95df0c7ec9..ac23e29af8 100644 --- a/ocs/routes.php +++ b/ocs/routes.php @@ -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');