diff options
-rw-r--r-- | lib/Controller/WorkspaceController.php | 5 | ||||
-rw-r--r-- | lib/DAV/WorkspacePlugin.php | 11 | ||||
-rw-r--r-- | lib/Service/WorkspaceService.php | 1 |
3 files changed, 14 insertions, 3 deletions
diff --git a/lib/Controller/WorkspaceController.php b/lib/Controller/WorkspaceController.php index 8e9f43685..57d90cd59 100644 --- a/lib/Controller/WorkspaceController.php +++ b/lib/Controller/WorkspaceController.php @@ -60,6 +60,7 @@ use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Folder; use OCP\Files\IRootFolder; use OCP\Files\NotFoundException; +use OCP\Files\StorageNotAvailableException; use OCP\IRequest; use OCP\IURLGenerator; use OCP\Share\Exceptions\ShareNotFound; @@ -132,6 +133,8 @@ class WorkspaceController extends OCSController { } } catch (NotFoundException $e) { return new DataResponse(['message' => 'No valid folder found'], Http::STATUS_BAD_REQUEST); + } catch (StorageNotAvailableException $e) { + return new DataResponse(['message' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); } } @@ -165,6 +168,8 @@ class WorkspaceController extends OCSController { return new DataResponse(['message' => 'No valid folder found'], Http::STATUS_BAD_REQUEST); } catch (ShareNotFound $e) { return new DataResponse(['message' => 'No valid folder found'], Http::STATUS_BAD_REQUEST); + } catch (StorageNotAvailableException $e) { + return new DataResponse(['message' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); } } diff --git a/lib/DAV/WorkspacePlugin.php b/lib/DAV/WorkspacePlugin.php index c39b5b364..79a8a393a 100644 --- a/lib/DAV/WorkspacePlugin.php +++ b/lib/DAV/WorkspacePlugin.php @@ -31,6 +31,7 @@ use OCA\DAV\Files\FilesHome; use OCA\Text\AppInfo\Application; use OCA\Text\Service\WorkspaceService; use OCP\Files\IRootFolder; +use OCP\Files\StorageNotAvailableException; use OCP\IConfig; use Sabre\DAV\INode; use Sabre\DAV\PropFind; @@ -98,9 +99,13 @@ class WorkspacePlugin extends ServerPlugin { $nodes = $this->rootFolder->getUserFolder($this->userId)->getById($node->getId()); if (count($nodes) > 0) { /** @var File $file */ - $file = $this->workspaceService->getFile($nodes[0]); - if ($file instanceof File) { - return $file->getContent(); + try { + $file = $this->workspaceService->getFile($nodes[0]); + if ($file instanceof File) { + return $file->getContent(); + } + } catch (StorageNotAvailableException $e) { + // If a storage is not available we can for the propfind response assume that there is no rich workspace present } } return ''; diff --git a/lib/Service/WorkspaceService.php b/lib/Service/WorkspaceService.php index ae5d57f60..b967eeae7 100644 --- a/lib/Service/WorkspaceService.php +++ b/lib/Service/WorkspaceService.php @@ -6,6 +6,7 @@ namespace OCA\Text\Service; use OCP\Files\Folder; use OCP\Files\NotFoundException; +use OCP\Files\StorageNotAvailableException; use OCP\IL10N; class WorkspaceService { |