From bcc483b918e2459db2aa55df70782465037eda72 Mon Sep 17 00:00:00 2001 From: sualko Date: Thu, 4 Jun 2020 10:25:51 +0200 Subject: [PATCH] perf: reduce db requests --- lib/Controller/JoinController.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/Controller/JoinController.php b/lib/Controller/JoinController.php index d944b7a..0853acb 100644 --- a/lib/Controller/JoinController.php +++ b/lib/Controller/JoinController.php @@ -3,6 +3,7 @@ namespace OCA\BigBlueButton\Controller; use OCA\BigBlueButton\BigBlueButton\API; use OCA\BigBlueButton\BigBlueButton\Presentation; +use OCA\BigBlueButton\Db\Room; use OCA\BigBlueButton\NotFoundException; use OCP\AppFramework\Http\RedirectResponse; use OCP\IRequest; @@ -18,6 +19,9 @@ class JoinController extends Controller /** @var string */ protected $token; + /** @var Room */ + protected $room; + /** @var RoomService */ private $service; @@ -50,11 +54,12 @@ class JoinController extends Controller public function setToken(string $token) { $this->token = $token; + $this->room = null; } public function isValidToken(): bool { - $room = $this->service->findByUid($this->token); + $room = $this->getRoom(); return $room !== null; } @@ -65,7 +70,7 @@ class JoinController extends Controller */ public function index($displayname, $u = '', $filename = '') { - $room = $this->service->findByUid($this->token); + $room = $this->getRoom(); if ($room === null) { throw new NotFoundException(); @@ -110,4 +115,13 @@ class JoinController extends Controller $response->getContentSecurityPolicy()->addAllowedFormActionDomain(($parsedApiUrl['scheme'] ?: 'https') . '://' . $parsedApiUrl['host']); } + + private function getRoom(): Room + { + if ($this->room === null) { + $this->room = $this->service->findByUid($this->token); + } + + return $this->room; + } }