Support OFFSET without LIMIT in API query filters (closes #2105)

This commit is contained in:
Bernd Bestel
2023-01-12 13:32:12 +01:00
parent a5788511e3
commit 995df64054

View File

@@ -50,8 +50,13 @@ class BaseApiController extends BaseController
$data = $this->filter($data, $query['query']); $data = $this->filter($data, $query['query']);
} }
if (isset($query['limit'])) if (isset($query['limit']) || isset($query['offset']))
{ {
if (!isset($query['limit']))
{
$query['limit'] = -1;
}
$data = $data->limit(intval($query['limit']), intval($query['offset'] ?? 0)); $data = $data->limit(intval($query['limit']), intval($query['offset'] ?? 0));
} }
@@ -101,7 +106,8 @@ class BaseApiController extends BaseController
$sqlOrNull = ' OR ' . $matches['field'] . ' IS NULL'; $sqlOrNull = ' OR ' . $matches['field'] . ' IS NULL';
} }
switch ($matches['op']) { switch ($matches['op'])
{
case '=': case '=':
$data = $data->where($matches['field'] . ' = ?' . $sqlOrNull, $matches['value']); $data = $data->where($matches['field'] . ' = ?' . $sqlOrNull, $matches['value']);
break; break;
@@ -129,7 +135,6 @@ class BaseApiController extends BaseController
case '§': case '§':
$data = $data->where($matches['field'] . ' REGEXP ?', $matches['value']); $data = $data->where($matches['field'] . ' REGEXP ?', $matches['value']);
break; break;
} }
} }