diff options
author | Joas Schilling <nickvergessen@owncloud.com> | 2016-05-19 11:09:38 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@owncloud.com> | 2016-05-19 11:10:32 +0200 |
commit | 20f229eed966b08d5aa7b8bc5e9c929c8e5a7e3b (patch) | |
tree | b28376865b65462c3ce854a652ab11485de21a96 /lib/private/OCS | |
parent | 7ca5b35379144d868a36f10c237c78de56f4ed5a (diff) | |
download | nextcloud-server-20f229eed966b08d5aa7b8bc5e9c929c8e5a7e3b.tar.gz nextcloud-server-20f229eed966b08d5aa7b8bc5e9c929c8e5a7e3b.zip |
Move OCS Provider to PSR-4 namespace
Diffstat (limited to 'lib/private/OCS')
-rw-r--r-- | lib/private/OCS/Provider.php | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/lib/private/OCS/Provider.php b/lib/private/OCS/Provider.php new file mode 100644 index 00000000000..4a7caa79fa5 --- /dev/null +++ b/lib/private/OCS/Provider.php @@ -0,0 +1,96 @@ +<?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/> + * + */ + +namespace OC\OCS; + +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 = [ + 'PRIVATE_DATA' => [ + 'version' => 1, + 'endpoints' => [ + 'store' => '/ocs/v2.php/privatedata/setattribute', + 'read' => '/ocs/v2.php/privatedata/getattribute', + 'delete' => '/ocs/v2.php/privatedata/deleteattribute', + ], + ], + ]; + + if($this->appManager->isEnabledForUser('files_sharing')) { + $services['SHARING'] = [ + 'version' => 1, + 'endpoints' => [ + 'share' => '/ocs/v2.php/apps/files_sharing/api/v1/shares', + ], + ]; + $services['FEDERATED_SHARING'] = [ + 'version' => 1, + 'endpoints' => [ + 'share' => '/ocs/v2.php/cloud/shares', + 'webdav' => '/public.php/webdav/', + ], + ]; + } + + if($this->appManager->isEnabledForUser('activity')) { + $services['ACTIVITY'] = [ + 'version' => 1, + 'endpoints' => [ + 'list' => '/ocs/v2.php/cloud/activity', + ], + ]; + } + + if($this->appManager->isEnabledForUser('provisioning_api')) { + $services['PROVISIONING'] = [ + 'version' => 1, + 'endpoints' => [ + 'user' => '/ocs/v2.php/cloud/users', + 'groups' => '/ocs/v2.php/cloud/groups', + 'apps' => '/ocs/v2.php/cloud/apps', + ], + ]; + } + + return new \OCP\AppFramework\Http\JSONResponse([ + 'version' => 2, + 'services' => $services, + ]); + } +} |