52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Repositories\Accounting;
|
|
|
|
use App\Models\Account;
|
|
|
|
class AccountRepository
|
|
{
|
|
|
|
public function list($params){
|
|
|
|
$limit = @$params["limit"] ?? 10;
|
|
$offset = @$params["offset"] ?? 0;
|
|
$sortColumn = @$params["sort"]["column"] ?? "id";
|
|
$sortDir = @$params["sort"]["dir"] ?? "desc";
|
|
|
|
return Account::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"] = "-";
|
|
$model = Account::create($params);
|
|
if (@$params["permissions"]){
|
|
$model->permissions()->sync($params["permissions"]);
|
|
}
|
|
return $model;
|
|
}
|
|
|
|
public function update($model, $params){
|
|
|
|
$model->update($params);
|
|
if (@$params["permissions"]){
|
|
$model->permissions()->sync($params["permissions"]);
|
|
}
|
|
return $model;
|
|
}
|
|
|
|
public function delete($model){
|
|
|
|
$model->delete();
|
|
}
|
|
}
|