Files
backend/app/Services/DataTable/Sort/ApplySort.php
2024-07-14 10:44:55 +00:00

32 lines
537 B
PHP

<?php
namespace App\Services\DataTable\Sort;
use Illuminate\Contracts\Database\Query\Builder;
class ApplySort
{
/**
* @param Builder $query
* @param ?Sort $sort
*/
public function __construct(
private Builder $query,
private ?Sort $sort,
)
{
}
public function apply(): Builder
{
$query = $this->query;
if (!is_null($this->sort)) {
$query->orderBy($this->sort->getId(), $this->sort->getDirection());
}
return $query;
}
}