Fixes for query filters for expenses

This commit is contained in:
David Bomba 2021-12-03 18:32:18 +11:00
parent 4b2417f44e
commit f2f71f892c
2 changed files with 16 additions and 2 deletions

View File

@ -36,7 +36,7 @@ class ExpenseFilters extends QueryFilters
}
return $this->builder->where(function ($query) use ($filter) {
$query->where('expenses.name', 'like', '%'.$filter.'%')
$query->where('expenses.public_notes', 'like', '%'.$filter.'%')
->orWhere('expenses.id_number', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value1', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value2', 'like', '%'.$filter.'%')
@ -94,7 +94,10 @@ class ExpenseFilters extends QueryFilters
{
$sort_col = explode('|', $sort);
return $this->builder->orderBy($sort_col[0], $sort_col[1]);
if(is_array($sort_col) && in_array($sort_col[1], ['asc', 'desc']) && in_array($sort_col[0], ['public_notes', 'date', 'id_number', 'custom_value1', 'custom_value2', 'custom_value3', 'custom_value4']))
return $this->builder->orderBy($sort_col[0], $sort_col[1]);
return $this->builder;
}
/**

View File

@ -121,6 +121,17 @@ class ExpenseApiTest extends TestCase
$response->assertStatus(200);
}
public function testExpenseGetSort()
{
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->get('/api/v1/expenses?sort=public_notes|desc');
$response->assertStatus(200);
}
public function testExpenseNotArchived()
{
$response = $this->withHeaders([