From c01e5420448bf70f4ffe1a7f33774a584cce6e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 15 Feb 2023 16:43:32 +0100 Subject: [PATCH] perf: remove duplicate fetching of assignments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/Service/CardService.php | 11 ++++++----- lib/Service/SearchService.php | 1 - 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Service/CardService.php b/lib/Service/CardService.php index 196e12859..d581ae18b 100644 --- a/lib/Service/CardService.php +++ b/lib/Service/CardService.php @@ -148,8 +148,8 @@ class CardService { $cardLabels = array_filter($assignedLabels, function (Label $label) use ($card) { return $label->getCardId() === $card->getId(); }); - $cardAssignedUsers = array_filter($assignedUsers, function (Assignment $label) use ($card) { - return $label->getCardId() === $card->getId(); + $cardAssignedUsers = array_filter($assignedUsers, function (Assignment $assignment) use ($card) { + return $assignment->getCardId() === $card->getId(); }); $card->setLabels($cardLabels); $card->setAssignedUsers($cardAssignedUsers); @@ -175,16 +175,17 @@ class CardService { public function find(int $cardId) { $this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_READ); $card = $this->cardMapper->find($cardId); - $assignedUsers = $this->assignedUsersMapper->findAll($card->getId()); + $this->enrichCards([$card]); + + // Attachments are only enriched on individual card fetching $attachments = $this->attachmentService->findAll($cardId, true); if ($this->request->getParam('apiVersion') === '1.0') { $attachments = array_filter($attachments, function ($attachment) { return $attachment->getType() === 'deck_file'; }); } - $card->setAssignedUsers($assignedUsers); $card->setAttachments($attachments); - $this->enrichCards([$card]); + return $card; } diff --git a/lib/Service/SearchService.php b/lib/Service/SearchService.php index 4c9cefa56..421747403 100644 --- a/lib/Service/SearchService.php +++ b/lib/Service/SearchService.php @@ -82,7 +82,6 @@ class SearchService { }, $boards); $matchedCards = $this->cardMapper->search($boardIds, $this->filterStringParser->parse($term), $limit, $cursor); - $self = $this; return $this->cardService->enrichCards($matchedCards); }