52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Repositories\Auth;
|
|
|
|
use App\Models\User;
|
|
|
|
class UserRepository
|
|
{
|
|
|
|
public function list($params){
|
|
|
|
$limit = @$params["limit"] ?? 10;
|
|
$offset = @$params["offset"] ?? 0;
|
|
$sortColumn = @$params["sort"]["column"] ?? "id";
|
|
$sortDir = @$params["sort"]["dir"] ?? "desc";
|
|
|
|
return User::skip($offset)
|
|
->orderBy($sortColumn, $sortDir)
|
|
|
|
->when(@$params["filter"], function ($query) use ($params) {
|
|
foreach ($params["filter"] as $filter) {
|
|
$query->where($filter["column"], $filter["query"]);
|
|
}
|
|
})
|
|
->paginate($limit);
|
|
}
|
|
|
|
public function create($params){
|
|
|
|
$params["password"] = "-";
|
|
$user = User::create($params);
|
|
if (@$params["roles"]){
|
|
$user->roles()->sync($params["roles"]);
|
|
}
|
|
return $user;
|
|
}
|
|
|
|
public function update($user, $params){
|
|
|
|
$user->update($params);
|
|
if (@$params["roles"]){
|
|
$user->roles()->sync($params["roles"]);
|
|
}
|
|
return $user;
|
|
}
|
|
|
|
public function delete($user){
|
|
|
|
$user->delete();
|
|
}
|
|
}
|