diff options
author | Julius Härtl <jus@bitgrid.net> | 2020-11-25 12:00:33 +0300 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2020-12-02 17:26:50 +0300 |
commit | de706b439874975c9849fc7c7ecf4b7cb66ce4e1 (patch) | |
tree | cca21268bd7a2459feb38bcbded7ee981db92194 /lib | |
parent | 41931998c1b5e6347fe4361d0a53935b22d6a5b9 (diff) |
Catch possible database exceptions when fetching document data
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Service/ApiService.php | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/Service/ApiService.php b/lib/Service/ApiService.php index d318c1520..bae813649 100644 --- a/lib/Service/ApiService.php +++ b/lib/Service/ApiService.php @@ -32,6 +32,7 @@ use OCA\Activity\Data; use OCA\Text\DocumentHasUnsavedChangesException; use OCA\Text\DocumentSaveConflictException; use OCA\Text\VersionMismatchException; +use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\FileDisplayResponse; @@ -161,20 +162,25 @@ class ApiService { return new DataResponse(['steps' => []]); } - $result = [ - 'steps' => $this->documentService->getSteps($documentId, $version), - 'sessions' => $this->sessionService->getActiveSessions($documentId), - 'document' => $this->documentService->get($documentId) - ]; - - $session = $this->sessionService->getSession($documentId, $sessionId, $sessionToken); try { + $result = [ + 'steps' => $this->documentService->getSteps($documentId, $version), + 'sessions' => $this->sessionService->getActiveSessions($documentId), + 'document' => $this->documentService->get($documentId) + ]; + + $session = $this->sessionService->getSession($documentId, $sessionId, $sessionToken); $file = $this->documentService->getFileForSession($session, $token); } catch (NotFoundException $e) { $this->logger->logException($e, ['level' => ILogger::INFO]); return new DataResponse([ 'message' => 'File not found' ], 404); + } catch (DoesNotExistException $e) { + $this->logger->logException($e, ['level' => ILogger::INFO]); + return new DataResponse([ + 'message' => 'Document no longer exists' + ], 404); } try { |