74 lines
1.3 KiB
PHP
74 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Vanguard\Repositories\Permission;
|
|
|
|
use Cache;
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
use Vanguard\Events\Permission\Created;
|
|
use Vanguard\Events\Permission\Deleted;
|
|
use Vanguard\Events\Permission\Updated;
|
|
use Vanguard\Permission;
|
|
|
|
class EloquentPermission implements PermissionRepository
|
|
{
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function all(): Collection
|
|
{
|
|
return Permission::all();
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function find($id): Permission
|
|
{
|
|
return Permission::find($id);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function create(array $data): Permission
|
|
{
|
|
$permission = Permission::create($data);
|
|
|
|
event(new Created($permission));
|
|
|
|
return $permission;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function update($id, array $data): Permission
|
|
{
|
|
$permission = $this->find($id);
|
|
|
|
$permission->update($data);
|
|
|
|
Cache::flush();
|
|
|
|
event(new Updated($permission));
|
|
|
|
return $permission;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function delete($id): bool
|
|
{
|
|
$permission = $this->find($id);
|
|
|
|
event(new Deleted($permission));
|
|
|
|
$status = $permission->delete();
|
|
|
|
Cache::flush();
|
|
|
|
return $status;
|
|
}
|
|
}
|