diff options
Diffstat (limited to 'ocs-provider')
-rw-r--r-- | ocs-provider/index.php | 34 | ||||
-rw-r--r-- | ocs-provider/provider.php | 92 |
2 files changed, 126 insertions, 0 deletions
diff --git a/ocs-provider/index.php b/ocs-provider/index.php new file mode 100644 index 00000000000..316b39cace8 --- /dev/null +++ b/ocs-provider/index.php @@ -0,0 +1,34 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +require_once('../lib/base.php'); +require_once(__DIR__ . '/provider.php'); + +header('Content-Type: application/json'); + +$server = \OC::$server; + +$controller = new Provider( + 'ocs_provider', + $server->getRequest(), + $server->getAppManager() +); +echo $controller->buildProviderList()->render(); diff --git a/ocs-provider/provider.php b/ocs-provider/provider.php new file mode 100644 index 00000000000..04da7402c98 --- /dev/null +++ b/ocs-provider/provider.php @@ -0,0 +1,92 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +class Provider extends \OCP\AppFramework\Controller { + /** @var \OCP\App\IAppManager */ + private $appManager; + + /** + * @param string $appName + * @param \OCP\IRequest $request + * @param \OCP\App\IAppManager $appManager + */ + public function __construct($appName, + \OCP\IRequest $request, + \OCP\App\IAppManager $appManager) { + parent::__construct($appName, $request); + $this->appManager = $appManager; + } + + /** + * @return \OCP\AppFramework\Http\JSONResponse + */ + public function buildProviderList() { + $services = [ + 'version' => 2, + 'PRIVATE_DATA' => [ + 'version' => 1, + 'endpoints' => [ + 'store' => '/ocs/v1.php/privatedata/setattribute', + 'read' => '/ocs/v1.php/privatedata/getattribute', + 'delete' => '/ocs/v1.php/privatedata/deleteattribute', + ], + ], + ]; + + if($this->appManager->isEnabledForUser('files_sharing')) { + $services['SHARING'] = [ + 'version' => 1, + 'endpoints' => [ + 'share' => '/ocs/v1.php/apps/files_sharing/api/v1/shares', + ], + ]; + $services['FEDERATED_SHARING'] = [ + 'version' => 1, + 'endpoints' => [ + 'share' => '/ocs/v1.php/cloud/shares', + 'webdav' => '/public.php/webdav/', + ], + ]; + } + + if($this->appManager->isEnabledForUser('activity')) { + $services['ACTIVITY'] = [ + 'version' => 1, + 'endpoints' => [ + 'list' => '/ocs/v1.php/cloud/activity', + ], + ]; + } + + if($this->appManager->isEnabledForUser('provisioning_api')) { + $services['PROVISIONING'] = [ + 'version' => 1, + 'endpoints' => [ + 'user' => '/ocs/v1.php/cloud/users', + 'groups' => '/ocs/v1.php/cloud/groups', + 'apps' => '/ocs/v1.php/cloud/apps', + ], + ]; + } + + return new \OCP\AppFramework\Http\JSONResponse($services); + } +}
\ No newline at end of file |