| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace App\Repositories;
- use App\Models\Permission;
- use Illuminate\Database\Eloquent\Collection;
- use App\DataTransferObjects\PermissionDto;
- class PermissionRepository implements PermissionRepositoryInterface
- {
- public function all(): ?Collection
- {
- return Permission::all()->toTree();
- }
- public function allNoTree(): ?Collection
- {
- return Permission::all();
- }
- public function find(int $id): ?Permission
- {
- return Permission::find($id);
- }
- public function findByScope(string $scope): ?Permission
- {
- return Permission::where('scope', $scope)->first();
- }
- public function update(PermissionDto $permissionDto, int $id): ?Permission
- {
- $permission = Permission::find($id);
- $permission->update([
- 'name' => $permissionDto->name,
- 'description' => $permissionDto->description,
- 'bits' => $permissionDto->bits,
- 'parent_id' => $permissionDto->parent_id,
- ]);
- return $permission;
- }
- public function store(PermissionDto $permissionDto): Permission
- {
- $permission = Permission::create([
- 'name' => $permissionDto->name,
- 'description' => $permissionDto->description,
- 'bits' => $permissionDto->bits,
- 'parent_id' => $permissionDto->parent_id,
- ]);
- if ($permissionDto->parent_id) {
- $parent = Permission::find($permissionDto->parent_id);
- $permission->prependToNode($parent);
- }
- return $permission;
- }
- public function delete(int $id): bool
- {
- return Permission::destroy($id) > 0;
- }
- }
|