Skip to content

Commit e390899

Browse files
authored
Merge pull request #491 from meilisearch/key_changes
Apply key pagination parameters
2 parents d77346a + 4c9eed5 commit e390899

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

meilisearch/client.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,14 @@ def get_key(self, key_or_uid: str) -> Dict[str, Any]:
262262
"""
263263
return self.http.get(f'{self.config.paths.keys}/{key_or_uid}')
264264

265-
def get_keys(self) -> Dict[str, Any]:
265+
def get_keys(self, parameters: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
266266
"""Gets the Meilisearch API keys.
267267
268+
Parameters
269+
----------
270+
parameters (optional):
271+
parameters accepted by the get keys route: https://docs.meilisearch.com/reference/api/keys.html#get-all-keys
272+
268273
Returns
269274
-------
270275
keys:
@@ -276,7 +281,11 @@ def get_keys(self) -> Dict[str, Any]:
276281
MeiliSearchApiError
277282
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://docs.meilisearch.com/errors/#meilisearch-errors
278283
"""
279-
return self.http.get(self.config.paths.keys)
284+
if parameters is None:
285+
parameters = {}
286+
return self.http.get(
287+
f'{self.config.paths.keys}?{parse.urlencode(parameters)}'
288+
)
280289

281290
def create_key(
282291
self,

tests/client/test_client_key_meilisearch.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ def test_get_keys_default(client):
1313
assert keys['results'][0]['key'] is not None
1414
assert keys['results'][1]['key'] is not None
1515

16+
def test_get_keys_with_parameters(client):
17+
"""Tests if search and admin keys have been generated and can be retrieved."""
18+
keys = client.get_keys({'limit': 1})
19+
assert isinstance(keys, dict)
20+
assert len(keys['results']) == 1
21+
1622
def test_get_key(client, test_key):
1723
"""Tests if a key can be retrieved."""
1824
key = client.get_key(test_key['key'])
@@ -65,7 +71,7 @@ def test_update_keys(client, test_key_info):
6571
"""Tests updating a key."""
6672
key = client.create_key(test_key_info)
6773
assert key['name'] == test_key_info['name']
68-
update_key = client.update_key(key=key['key'], options={ 'name': 'keyTest' })
74+
update_key = client.update_key(key_or_uid=key['key'], options={ 'name': 'keyTest' })
6975
assert update_key['key'] is not None
7076
assert update_key['expiresAt'] is None
7177
assert update_key['name'] == 'keyTest'

0 commit comments

Comments
 (0)