X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/1559b0acd1018edff3f173df0c87f631549462fa..refs/pull/5725/head:/app/Entities/Queries/BookQueries.php diff --git a/app/Entities/Queries/BookQueries.php b/app/Entities/Queries/BookQueries.php index 6de28f0c2..534640621 100644 --- a/app/Entities/Queries/BookQueries.php +++ b/app/Entities/Queries/BookQueries.php @@ -6,14 +6,29 @@ use BookStack\Entities\Models\Book; use BookStack\Exceptions\NotFoundException; use Illuminate\Database\Eloquent\Builder; -class BookQueries +class BookQueries implements ProvidesEntityQueries { + protected static array $listAttributes = [ + 'id', 'slug', 'name', 'description', + 'created_at', 'updated_at', 'image_id', 'owned_by', + ]; + public function start(): Builder { return Book::query(); } - public function findVisibleBySlug(string $slug): Book + public function findVisibleById(int $id): ?Book + { + return $this->start()->scopes('visible')->find($id); + } + + public function findVisibleByIdOrFail(int $id): Book + { + return $this->start()->scopes('visible')->findOrFail($id); + } + + public function findVisibleBySlugOrFail(string $slug): Book { /** @var ?Book $book */ $book = $this->start() @@ -30,7 +45,8 @@ class BookQueries public function visibleForList(): Builder { - return $this->start()->scopes('visible'); + return $this->start()->scopes('visible') + ->select(static::$listAttributes); } public function visibleForListWithCover(): Builder