em->getRepository(Task::class)->find($taskId); if (null === $task || null === $task->getProject()) { return []; } $shelfId = $task->getProject()->getBookstackShelfId(); if (null === $shelfId) { return []; } $request = $this->requestStack->getCurrentRequest(); $query = $request?->query->get('q', '') ?? ''; if ('' === trim($query)) { return []; } try { $results = $this->bookStackApiService->searchInShelf($shelfId, $query); } catch (BookStackApiException $e) { throw new BadRequestHttpException($e->getMessage(), $e); } return array_map(static function (array $item): BookStackSearchResult { $dto = new BookStackSearchResult(); $dto->id = $item['id']; $dto->type = $item['type']; $dto->name = $item['name']; $dto->url = $item['url']; return $dto; }, $results); } }