Catch StorageNotAvailable exceptions

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2020-08-28 08:27:12 +02:00
Родитель 5239746252
Коммит 249730db58
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4C614C6ED2CDE6DF
3 изменённых файлов: 15 добавлений и 3 удалений

Просмотреть файл

@ -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;
@ -134,6 +135,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);
}
}
@ -167,6 +170,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);
}
}

Просмотреть файл

@ -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 '';

Просмотреть файл

@ -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 {
@ -25,6 +26,7 @@ class WorkspaceService {
/**
* @param Folder $folder
* @throws StorageNotAvailableException
* @return \OCP\Files\File
*/
public function getFile(Folder $folder) {