From dc05bb09f54af87e91d2c20c128708d3ffd19327 Mon Sep 17 00:00:00 2001 From: Ashod Nakashian Date: Wed, 23 Mar 2016 21:56:06 -0400 Subject: [PATCH] wopi: CheckFileInfo handler added --- appinfo/routes.php | 1 + controller/documentcontroller.php | 32 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/appinfo/routes.php b/appinfo/routes.php index 89f2b5d8..91044804 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -38,6 +38,7 @@ $application->registerRoutes($this, [ ['name' => 'document#localClose', 'url' => 'close/{fileId}', 'verb' => 'POST'], //documents - for WOPI access ['name' => 'document#wopiGetToken', 'url' => 'wopi/token/{fileId}', 'verb' => 'GET'], + ['name' => 'document#wopiCheckFileInfo', 'url' => 'wopi/files/{fileId}', 'verb' => 'GET'], ['name' => 'document#wopiGetFile', 'url' => 'wopi/files/{fileId}/contents', 'verb' => 'GET'], ['name' => 'document#wopiPutFile', 'url' => 'wopi/files/{fileId}/contents', 'verb' => 'POST'], //settings diff --git a/controller/documentcontroller.php b/controller/documentcontroller.php index 8a72657d..1dbf043b 100644 --- a/controller/documentcontroller.php +++ b/controller/documentcontroller.php @@ -317,6 +317,38 @@ class DocumentController extends Controller{ ); } + /** + * @NoAdminRequired + * @NoCSRFRequired + * @PublicPage + * Returns general info about a file. + */ + public function wopiCheckFileInfo($fileId){ + $token = $this->request->getParam('access_token'); + + \OC::$server->getLogger()->debug('Getting info about file {fileId} by token {token}.', [ 'app' => $this->appName, 'fileId' => $fileId, 'token' => $token ]); + + $row = new Db\Wopi(); + $row->loadBy('token', $token); + + $res = $row->getPathForToken($fileId, $token); + + $view = new \OC\Files\View('/' . $res['user'] . '/'); + $info = $view->getFileInfo($res['path']); + + \OC::$server->getLogger()->debug('File info: {info}.', [ 'app' => $this->appName, 'info' => $info ]); + + $baseFileName = $info['name']; + $size = $info['size']; + + return array( + 'BaseFileName' => $baseFileName, + 'Size' => $size, + //'DownloadUrl' => '', + //'FileUrl' => '', + ); + } + /** * @NoAdminRequired * @NoCSRFRequired