diff options
author | Morris Jobke <hey@morrisjobke.de> | 2018-01-18 12:17:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-18 12:17:46 +0100 |
commit | d0c46ab45e48454bd76cbe6b61cc604074c57a76 (patch) | |
tree | ec0c6396fee2f63af211e117b242a933f7edd0f2 /apps | |
parent | d78a4daf7e6738d9e04cb7eeb3608d6a0e6069ab (diff) | |
parent | 05f75f803a104e5dbcf11a112122c1232e49f8fd (diff) | |
download | nextcloud-server-d0c46ab45e48454bd76cbe6b61cc604074c57a76.tar.gz nextcloud-server-d0c46ab45e48454bd76cbe6b61cc604074c57a76.zip |
Merge pull request #7923 from nextcloud/files_external_ocscontroller
[files_external] OCS endpoint to proper OCSController
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_external/appinfo/routes.php | 37 | ||||
-rw-r--r-- | apps/files_external/lib/Controller/ApiController.php (renamed from apps/files_external/lib/Lib/Api.php) | 44 |
2 files changed, 50 insertions, 31 deletions
diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php index 97c2d7b0e00..b8f055530c4 100644 --- a/apps/files_external/appinfo/routes.php +++ b/apps/files_external/appinfo/routes.php @@ -31,26 +31,33 @@ **/ \OC_Mount_Config::$app->registerRoutes( $this, - array( - 'resources' => array( - 'global_storages' => array('url' => '/globalstorages'), - 'user_storages' => array('url' => '/userstorages'), - 'user_global_storages' => array('url' => '/userglobalstorages'), - ), - 'routes' => array( - array( + [ + 'resources' => [ + 'global_storages' => ['url' => '/globalstorages'], + 'user_storages' => ['url' => '/userstorages'], + 'user_global_storages' => ['url' => '/userglobalstorages'], + ], + 'routes' => [ + [ 'name' => 'Ajax#getSshKeys', 'url' => '/ajax/public_key.php', 'verb' => 'POST', - 'requirements' => array() - ), + 'requirements' => [], + ], [ 'name' => 'Ajax#saveGlobalCredentials', 'url' => '/globalcredentials', 'verb' => 'POST', ], - ) - ) + ], + 'ocs' => [ + [ + 'name' => 'Api#getUserMounts', + 'url' => '/api/v1/mounts', + 'verb' => 'GET', + ], + ], + ] ); $this->create('files_external_oauth1', 'ajax/oauth1.php') @@ -61,9 +68,3 @@ $this->create('files_external_oauth2', 'ajax/oauth2.php') $this->create('files_external_list_applicable', '/applicable') ->actionInclude('files_external/ajax/applicable.php'); - -\OCP\API::register('get', - '/apps/files_external/api/v1/mounts', - array('\OCA\Files_External\Lib\Api', 'getUserMounts'), - 'files_external'); - diff --git a/apps/files_external/lib/Lib/Api.php b/apps/files_external/lib/Controller/ApiController.php index 6957af0b7bb..8be623c5eee 100644 --- a/apps/files_external/lib/Lib/Api.php +++ b/apps/files_external/lib/Controller/ApiController.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @@ -26,9 +27,25 @@ * */ -namespace OCA\Files_External\Lib; +namespace OCA\Files_External\Controller; -class Api { +use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\OCSController; +use OCP\IRequest; +use OCP\IUserSession; + +class ApiController extends OCSController { + + /** @var IUserSession */ + private $userSession; + + public function __construct(string $appName, + IRequest $request, + IUserSession $userSession) { + parent::__construct($appName, $request); + + $this->userSession = $userSession; + } /** * Formats the given mount config to a mount entry. @@ -38,13 +55,13 @@ class Api { * * @return array entry */ - private static function formatMount($mountPoint, $mountConfig) { + private function formatMount(string $mountPoint, array $mountConfig): array { // strip "/$user/files" from mount point $mountPoint = explode('/', trim($mountPoint, '/'), 3); - $mountPoint = isset($mountPoint[2]) ? $mountPoint[2] : ''; + $mountPoint = $mountPoint[2] ?? ''; // split path from mount point - $path = dirname($mountPoint); + $path = \dirname($mountPoint); if ($path === '.') { $path = ''; } @@ -62,7 +79,7 @@ class Api { 'path' => $path, 'type' => 'dir', 'backend' => $mountConfig['backend'], - 'scope' => ( $isSystemMount ? 'system' : 'personal' ), + 'scope' => $isSystemMount ? 'system' : 'personal', 'permissions' => $permissions, 'id' => $mountConfig['id'], 'class' => $mountConfig['class'] @@ -71,20 +88,21 @@ class Api { } /** + * @NoAdminRequired + * * Returns the mount points visible for this user. * - * @param array $params - * @return \OC\OCS\Result share information + * @return DataResponse share information */ - public static function getUserMounts($params) { - $entries = array(); - $user = \OC::$server->getUserSession()->getUser()->getUID(); + public function getUserMounts(): DataResponse { + $entries = []; + $user = $this->userSession->getUser()->getUID(); $mounts = \OC_Mount_Config::getAbsoluteMountPoints($user); foreach($mounts as $mountPoint => $mount) { - $entries[] = self::formatMount($mountPoint, $mount); + $entries[] = $this->formatMount($mountPoint, $mount); } - return new \OC\OCS\Result($entries); + return new DataResponse($entries); } } |