Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2020-11-25 12:00:33 +0300
committerJulius Härtl <jus@bitgrid.net>2020-12-02 17:26:50 +0300
commitde706b439874975c9849fc7c7ecf4b7cb66ce4e1 (patch)
treecca21268bd7a2459feb38bcbded7ee981db92194 /lib
parent41931998c1b5e6347fe4361d0a53935b22d6a5b9 (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.php20
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 {