5 use BristolSU\ControlDB\Contracts\Repositories\Group as GroupRepository;
6 use BristolSU\ControlDB\Contracts\Repositories\Role as RoleRepository;
32 protected $description =
'Caches all filter results for increased speed in page load';
46 GroupRepository $groupRepository,
47 RoleRepository $roleRepository)
49 $this->info(
'Caching filters');
51 $users = collect($userRepository->all());
52 $groups = collect($groupRepository->all());
53 $roles = collect($roleRepository->all());
55 $filterInstances = $filterInstanceRepository->
all();
57 $filterInstanceProgress = $this->output->createProgressBar(count($filterInstances));
58 $filterInstanceProgress->start();
59 foreach ($filterInstances as $filterInstance) {
60 if ($filterInstance->for() ===
'user') {
62 } elseif ($filterInstance->for() ===
'group') {
64 } elseif ($filterInstance->for() ===
'role') {
67 $filterInstanceProgress->advance();
80 foreach ($models as $model) {
handle(FilterInstanceRepository $filterInstanceRepository, UserRepository $userRepository, GroupRepository $groupRepository, RoleRepository $roleRepository)
cacheFilter(FilterInstance $filterInstance, Collection $models)