]> BookStack Code Mirror - bookstack/blob - app/Entities/Queries/PageQueries.php
b9c64f63ce81962c3d96c6aeb179abdfccd017b1
[bookstack] / app / Entities / Queries / PageQueries.php
1 <?php
2
3 namespace BookStack\Entities\Queries;
4
5 use BookStack\Entities\Models\Page;
6 use Illuminate\Database\Eloquent\Builder;
7
8 class PageQueries
9 {
10     public function start(): Builder
11     {
12         return Page::query();
13     }
14
15     public function visibleForList(): Builder
16     {
17         return $this->start()
18             ->select(array_merge(Page::$listAttributes, ['book_slug' => function ($builder) {
19                 $builder->select('slug')
20                     ->from('books')
21                     ->whereColumn('books.id', '=', 'pages.book_id');
22             }]));
23     }
24
25     public function currentUserDraftsForList(): Builder
26     {
27         return $this->visibleForList()
28             ->where('draft', '=', true)
29             ->where('created_by', '=', user()->id);
30     }
31 }