From f2957ab4ad8b4ae03b28ec81e86438a99d0a9617 Mon Sep 17 00:00:00 2001 From: Mal <=> Date: Thu, 20 Aug 2020 16:23:49 +0200 Subject: [PATCH] Fixing error handling in QrCodeGetController --- .../controller/QrCodeGetController.php | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/backend/classes/controller/QrCodeGetController.php b/backend/classes/controller/QrCodeGetController.php index 5a05289..f27f78c 100644 --- a/backend/classes/controller/QrCodeGetController.php +++ b/backend/classes/controller/QrCodeGetController.php @@ -20,16 +20,23 @@ final class QrCodeGetController extends AbstractController $filename = Setting::PATH_QR_CODES . (string)$this->fingerprintId . '.svg'; if (!is_file($filename)) { - $this->response = new ApiJsonResponse(); + $this->response = new ApiJsonResponse(ServerStatus::BAD_REQUEST); $this->response->setParameter('success', false); - $this->response->setMessage('No QR code for fingerprint id %d found!'); - $this->response->setMimeType(ApiResponse::MIME_TYPE_JSON); + $this->response->setMessage(sprintf('No QR code for fingerprint id %d found!', $this->fingerprintId)); + + return; } - $this->response = new ApiSvgResponse(); + try { + $this->response = new ApiSvgResponse(); - $file = fopen($filename, 'r'); - $this->response->setContent(fread($file, filesize($filename))); - fclose($file); + $file = @fopen($filename, 'r'); + $this->response->setContent(@fread($file, @filesize($filename))); + @fclose($file); + } catch (Throwable $e) { + $this->response = new ApiJsonResponse(ServerStatus::INTERNAL_ERROR); + $this->response->setParameter('success', false); + $this->response->setMessage($e->getMessage()); + } } } \ No newline at end of file