3 namespace BookStack\Entities\Queries;
5 use BookStack\Actions\View;
6 use Illuminate\Support\Facades\DB;
8 class Popular extends EntityQuery
10 public function run(int $count, int $page, array $filterModels = null)
12 $query = $this->permissionService()
13 ->restrictEntityRelationQuery(View::query(), 'views', 'viewable_id', 'viewable_type')
14 ->select('*', 'viewable_id', 'viewable_type', DB::raw('SUM(views) as view_count'))
15 ->groupBy('viewable_id', 'viewable_type')
16 ->orderBy('view_count', 'desc');
19 $query->whereIn('viewable_type', $this->entityProvider()->getMorphClasses($filterModels));
22 return $query->with('viewable')
23 ->skip($count * ($page - 1))