From 05f75f803a104e5dbcf11a112122c1232e49f8fd Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Wed, 17 Jan 2018 20:00:09 +0100 Subject: [PATCH] [files_external] OCS endpoint to proper OCSController Signed-off-by: Roeland Jago Douma --- apps/files_external/appinfo/routes.php | 37 ++++++++-------- .../Api.php => Controller/ApiController.php} | 44 +++++++++++++------ 2 files changed, 50 insertions(+), 31 deletions(-) rename apps/files_external/lib/{Lib/Api.php => Controller/ApiController.php} (68%) diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php index 97c2d7b0e0..b8f055530c 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 similarity index 68% rename from apps/files_external/lib/Lib/Api.php rename to apps/files_external/lib/Controller/ApiController.php index 6957af0b7b..8be623c5ee 100644 --- a/apps/files_external/lib/Lib/Api.php +++ b/apps/files_external/lib/Controller/ApiController.php @@ -1,4 +1,5 @@ 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); } }