3 namespace BookStack\Entities\Queries;
5 use BookStack\Activity\Models\View;
6 use BookStack\Entities\Tools\MixedEntityListLoader;
7 use BookStack\Permissions\PermissionApplicator;
8 use Illuminate\Support\Collection;
10 class QueryRecentlyViewed
12 public function __construct(
13 protected PermissionApplicator $permissions,
14 protected MixedEntityListLoader $listLoader,
18 public function run(int $count, int $page): Collection
21 if ($user->isGuest()) {
25 $query = $this->permissions->restrictEntityRelationQuery(
31 ->orderBy('views.updated_at', 'desc')
32 ->where('user_id', '=', user()->id);
35 ->skip(($page - 1) * $count)
39 $this->listLoader->loadIntoRelations($views->all(), 'viewable', false);
41 return $views->pluck('viewable')->filter();