first change
This commit is contained in:
60
Modules/User/app/Services/RoleService.php
Normal file
60
Modules/User/app/Services/RoleService.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Services;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class RoleService
|
||||
{
|
||||
|
||||
public function getRoles(Request $request)
|
||||
{
|
||||
$query = Role::query();
|
||||
return $query->get();
|
||||
}
|
||||
|
||||
public function storeRole(array $roleData, array $permissionIds): Role
|
||||
{
|
||||
return DB::transaction(function () use ($roleData, $permissionIds) {
|
||||
$role = Role::create($roleData);
|
||||
$role->permissions()->attach($permissionIds);
|
||||
return $role;
|
||||
});
|
||||
}
|
||||
|
||||
public function getRoleById(int $id)
|
||||
{
|
||||
return Role::findOrFail($id);
|
||||
}
|
||||
|
||||
public function updateRole(int $id, array $roleData, array $permissionIds)
|
||||
{
|
||||
$role = self::getRoleById($id);
|
||||
|
||||
return DB::transaction(function () use ($role, $roleData, $permissionIds) {
|
||||
$role->update($roleData);
|
||||
$role->permissions()->sync($permissionIds);
|
||||
return $role;
|
||||
});
|
||||
}
|
||||
|
||||
public function deleteRole(int $id)
|
||||
{
|
||||
return DB::transaction(function () use ($id) {
|
||||
$role = self::getRoleById($id);
|
||||
$role->permissions()->detach();
|
||||
$role->delete();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
public static function pluck(callable $query = null)
|
||||
{
|
||||
$baseQuery = Role::query();
|
||||
if (is_callable($query)) {
|
||||
$query($baseQuery);
|
||||
}
|
||||
return $baseQuery->pluck('name', 'id');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user