Skip to content

Commit 8d6a01b

Browse files
committed
convert bools and ints to strings pre validation
1 parent 42c4bf9 commit 8d6a01b

3 files changed

Lines changed: 13 additions & 3 deletions

File tree

typesense/documents.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from .document import Document
66
from .logger import logger
77
from .validation import validate_search
8+
from .preprocess import stringify_search_params
89
from collections.abc import Iterable
910

1011
class Documents(object):
@@ -95,8 +96,9 @@ def export(self, params=None):
9596
return api_response
9697

9798
def search(self, search_parameters):
98-
validate_search(search_parameters)
99-
return self.api_call.get(self._endpoint_path('search'), search_parameters)
99+
stringified_search_params = stringify_search_params(search_parameters)
100+
validate_search(stringified_search_params)
101+
return self.api_call.get(self._endpoint_path('search'), stringified_search_params)
100102

101103
def delete(self, params=None):
102104
return self.api_call.delete(self._endpoint_path(), params)

typesense/preprocess.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def stringify_search_params(params):
2+
return {key:stringify(val) for key, val in params.items()}
3+
4+
def stringify(val):
5+
if isinstance(val, bool) or isinstance(val, int):
6+
return str(val).lower()
7+
else:
8+
return val

typesense/validation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
def validate_search(params):
55
for key in params:
6-
if type(params[key]) is not str:
6+
if not isinstance(params[key], str):
77
raise InvalidParameter(f"'{key}' field expected a string but was given {type(params[key]).__name__}")

0 commit comments

Comments
 (0)