namespace BookStack\References;
-use BookStack\Entities\Models\Book;
-use BookStack\Entities\Models\Bookshelf;
-use BookStack\Entities\Models\Chapter;
-use BookStack\Entities\Models\Page;
+use BookStack\Entities\Queries\EntityQueries;
use BookStack\Http\Controller;
class ReferenceController extends Controller
{
- protected ReferenceFetcher $referenceFetcher;
-
- public function __construct(ReferenceFetcher $referenceFetcher)
- {
- $this->referenceFetcher = $referenceFetcher;
+ public function __construct(
+ protected ReferenceFetcher $referenceFetcher,
+ protected EntityQueries $queries,
+ ) {
}
/**
*/
public function page(string $bookSlug, string $pageSlug)
{
- $page = Page::getBySlugs($bookSlug, $pageSlug);
- $references = $this->referenceFetcher->getPageReferencesToEntity($page);
+ $page = $this->queries->pages->findVisibleBySlugsOrFail($bookSlug, $pageSlug);
+ $references = $this->referenceFetcher->getReferencesToEntity($page);
return view('pages.references', [
'page' => $page,
*/
public function chapter(string $bookSlug, string $chapterSlug)
{
- $chapter = Chapter::getBySlugs($bookSlug, $chapterSlug);
- $references = $this->referenceFetcher->getPageReferencesToEntity($chapter);
+ $chapter = $this->queries->chapters->findVisibleBySlugsOrFail($bookSlug, $chapterSlug);
+ $references = $this->referenceFetcher->getReferencesToEntity($chapter);
return view('chapters.references', [
'chapter' => $chapter,
*/
public function book(string $slug)
{
- $book = Book::getBySlug($slug);
- $references = $this->referenceFetcher->getPageReferencesToEntity($book);
+ $book = $this->queries->books->findVisibleBySlugOrFail($slug);
+ $references = $this->referenceFetcher->getReferencesToEntity($book);
return view('books.references', [
'book' => $book,
*/
public function shelf(string $slug)
{
- $shelf = Bookshelf::getBySlug($slug);
- $references = $this->referenceFetcher->getPageReferencesToEntity($shelf);
+ $shelf = $this->queries->shelves->findVisibleBySlugOrFail($slug);
+ $references = $this->referenceFetcher->getReferencesToEntity($shelf);
return view('shelves.references', [
'shelf' => $shelf,