Bristol SU Support Package
ModuleInstanceRepository.php
Go to the documentation of this file.
1 <?php
2 
3 
5 
6 
9 use BristolSU\Support\ModuleInstance\Contracts\ModuleInstanceRepository as ModuleInstanceRepositoryContract;
12 
16 class ModuleInstanceRepository implements ModuleInstanceRepositoryContract
17 {
18 
27  public function getById(int $id): ModuleInstanceContract
28  {
29  return ModuleInstance::findOrFail($id);
30  }
31 
44  public function create(array $attributes) : ModuleInstanceContract
45  {
46  return ModuleInstance::create($attributes);
47  }
48 
52  public function all(): Collection
53  {
54  return ModuleInstance::all();
55  }
56 
60  public function allWithAlias(string $alias = ''): Collection
61  {
62  return ModuleInstance::where('alias', $alias)->get();
63  }
64 
72  public function allThroughActivity(Activity $activity): Collection
73  {
74  return $activity->moduleInstances;
75  }
76 
84  public function allEnabledThroughActivity(Activity $activity): Collection
85  {
86  return $activity->moduleInstances()->enabled()->get();
87 
88  }
89 
101  public function update(int $id, array $attributes = []): ModuleInstanceContract
102  {
103  $moduleInstance = $this->getById($id);
104  $moduleInstance->fill($attributes);
105  $moduleInstance->save();
106  return $moduleInstance;
107  }
108 
115  public function delete(int $id)
116  {
117  $moduleInstance = $this->getById($id);
118  $moduleInstance->delete();
119  }
120 
121 
122 }