invoiceninja/app/Filters/SystemLogFilters.php

91 lines
2 KiB
PHP
Raw Normal View History

2020-08-24 12:45:53 +10:00
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
2020-08-24 12:45:53 +10:00
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
2023-01-29 09:21:40 +11:00
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
2020-08-24 12:45:53 +10:00
*
2021-06-16 16:58:16 +10:00
* @license https://www.elastic.co/licensing/elastic-license
2020-08-24 12:45:53 +10:00
*/
namespace App\Filters;
use Illuminate\Database\Eloquent\Builder;
/**
* SystemLogFilters.
2020-08-24 12:45:53 +10:00
*/
class SystemLogFilters extends QueryFilters
{
public function type_id(string $type_id = ''): Builder
2020-08-24 12:45:53 +10:00
{
if (strlen($type_id) == 0) {
2023-01-30 10:36:13 +01:00
return $this->builder;
}
2020-08-24 12:45:53 +10:00
return $this->builder->where('type_id', $type_id);
}
public function category_id(string $category_id = ''): Builder
2020-08-24 12:45:53 +10:00
{
if (strlen($category_id) == 0) {
2023-01-30 10:36:13 +01:00
return $this->builder;
}
2020-08-24 12:45:53 +10:00
return $this->builder->where('category_id', $category_id);
}
public function event_id(string $event_id = ''): Builder
2020-08-24 12:45:53 +10:00
{
if (strlen($event_id) == 0) {
2023-01-30 10:36:13 +01:00
return $this->builder;
}
2020-08-24 12:45:53 +10:00
return $this->builder->where('event_id', $event_id);
}
/**
* Filter based on search text.
2020-08-24 12:45:53 +10:00
*
2020-10-28 21:10:49 +11:00
* @param string query filter
* @return Builder
2020-08-24 12:45:53 +10:00
* @deprecated
*/
2023-01-30 07:08:26 +01:00
public function filter(string $filter = ''): Builder
2020-08-24 12:45:53 +10:00
{
if (strlen($filter) == 0) {
2020-08-24 12:45:53 +10:00
return $this->builder;
}
return $this->builder;
}
/**
* Sorts the list based on $sort.
2020-08-24 12:45:53 +10:00
*
2020-10-28 21:10:49 +11:00
* @param string sort formatted as column|asc
* @return Builder
2020-08-24 12:45:53 +10:00
*/
public function sort(string $sort = ''): Builder
2020-08-24 12:45:53 +10:00
{
$sort_col = explode('|', $sort);
if (!is_array($sort_col) || count($sort_col) != 2) {
return $this->builder;
}
2020-08-24 12:45:53 +10:00
return $this->builder->orderBy($sort_col[0], $sort_col[1]);
}
/**
* Filters the query by the users company ID.
2020-08-24 12:45:53 +10:00
*
2023-01-19 11:52:07 +11:00
* @return Builder
2020-08-24 12:45:53 +10:00
*/
2023-01-19 11:52:07 +11:00
public function entityFilter(): Builder
2020-08-24 12:45:53 +10:00
{
return $this->builder->company();
}
}