Add page size parameter to search #67

Merged
MrPetovan merged 1 commit from task/31-add-limit-to-search into stable 2020-09-27 20:05:18 +02:00
3 changed files with 11 additions and 5 deletions

View file

@ -11,14 +11,16 @@ Redirects to the base URL of a random server with open registration policy and a
## Search
```
GET /search[/account_type]?q=...
GET /search[/account_type]?q=...[&page=...][&limit=...]
Accept: application/json
```
Parameters:
URI Parameter:
- `account_type` (optional): An arbitrary account type string. Expected values are `all`, `people`, `news`, `organization` and `forum`. Default is `all`.
Query parameters:
- `q`: The search query.
- `account_type` (optional): An arbitrary account type string. Currently supported are `all`, `people` and `forum`. Default is `all`.
- `page` (optional): The page number, default is 1.
- `limit` (optional): The page size, default is 20, max is 100.
Returns a JSON structure containing a paginated list profiles matching the search query and the optional account type.

View file

@ -37,7 +37,9 @@ class Search
public function render(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
{
$pager = new Pager($this->l10n, $request, 20);
$limit = min(100, filter_input(INPUT_GET, 'limit', FILTER_SANITIZE_NUMBER_INT) ?: 20);
$pager = new Pager($this->l10n, $request, $limit);
$originalQuery = $query = filter_input(INPUT_GET, 'q');

View file

@ -47,7 +47,9 @@ class Search extends BaseController
public function render(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): array
{
$pager = new Pager($this->l10n, $request, 20);
$limit = min(100, filter_input(INPUT_GET, 'limit', FILTER_SANITIZE_NUMBER_INT) ?: 20);
$pager = new Pager($this->l10n, $request, $limit);
$originalQuery = $query = $request->getParam('q', '');
$field = $request->getParam('field', '');