]> BookStack Code Mirror - bookstack/blob - app/References/ReferenceController.php
Vectors: Added command to regenerate for all
[bookstack] / app / References / ReferenceController.php
1 <?php
2
3 namespace BookStack\References;
4
5 use BookStack\Entities\Queries\EntityQueries;
6 use BookStack\Http\Controller;
7
8 class ReferenceController extends Controller
9 {
10     public function __construct(
11         protected ReferenceFetcher $referenceFetcher,
12         protected EntityQueries $queries,
13     ) {
14     }
15
16     /**
17      * Display the references to a given page.
18      */
19     public function page(string $bookSlug, string $pageSlug)
20     {
21         $page = $this->queries->pages->findVisibleBySlugsOrFail($bookSlug, $pageSlug);
22         $references = $this->referenceFetcher->getReferencesToEntity($page);
23
24         return view('pages.references', [
25             'page'       => $page,
26             'references' => $references,
27         ]);
28     }
29
30     /**
31      * Display the references to a given chapter.
32      */
33     public function chapter(string $bookSlug, string $chapterSlug)
34     {
35         $chapter = $this->queries->chapters->findVisibleBySlugsOrFail($bookSlug, $chapterSlug);
36         $references = $this->referenceFetcher->getReferencesToEntity($chapter);
37
38         return view('chapters.references', [
39             'chapter'    => $chapter,
40             'references' => $references,
41         ]);
42     }
43
44     /**
45      * Display the references to a given book.
46      */
47     public function book(string $slug)
48     {
49         $book = $this->queries->books->findVisibleBySlugOrFail($slug);
50         $references = $this->referenceFetcher->getReferencesToEntity($book);
51
52         return view('books.references', [
53             'book'       => $book,
54             'references' => $references,
55         ]);
56     }
57
58     /**
59      * Display the references to a given shelf.
60      */
61     public function shelf(string $slug)
62     {
63         $shelf = $this->queries->shelves->findVisibleBySlugOrFail($slug);
64         $references = $this->referenceFetcher->getReferencesToEntity($shelf);
65
66         return view('shelves.references', [
67             'shelf'      => $shelf,
68             'references' => $references,
69         ]);
70     }
71 }