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) { 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.id_number', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value1', 'like', '%'.$filter.'%') ->orWhere('expenses.custom_value1', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value2', 'like', '%'.$filter.'%') ->orWhere('expenses.custom_value2', 'like', '%'.$filter.'%')
@ -94,7 +94,10 @@ class ExpenseFilters extends QueryFilters
{ {
$sort_col = explode('|', $sort); $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); $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() public function testExpenseNotArchived()
{ {
$response = $this->withHeaders([ $response = $this->withHeaders([