Skip to content

Commit 58ed8b5

Browse files
committed
Create function for code duplication
1 parent 8045522 commit 58ed8b5

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

meilisearch/index.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,6 @@ def get_documents(self, parameters: Optional[Dict[str, Any]] = None) -> List[Dic
316316
"""
317317
if parameters is None:
318318
parameters = {}
319-
320319
return self.http.get(
321320
f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}?{urllib.parse.urlencode(parameters)}'
322321
)
@@ -346,11 +345,7 @@ def add_documents(
346345
MeiliSearchApiError
347346
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
348347
"""
349-
if primary_key is None:
350-
url = f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}'
351-
else:
352-
primary_key = urllib.parse.urlencode({'primaryKey': primary_key})
353-
url = f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}?{primary_key}'
348+
url = self._build_url(primary_key)
354349
return self.http.post(url, documents)
355350

356351
def add_documents_in_batches(
@@ -500,11 +495,7 @@ def add_documents_raw(
500495
MeiliSearchApiError
501496
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
502497
"""
503-
if primary_key is None:
504-
url = f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}'
505-
else:
506-
primary_key = urllib.parse.urlencode({'primaryKey': primary_key})
507-
url = f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}?{primary_key}'
498+
url = self._build_url(primary_key)
508499
if doc_type == "json":
509500
content_type = 'application/json'
510501
if doc_type == "jsonl":
@@ -538,11 +529,7 @@ def update_documents(
538529
MeiliSearchApiError
539530
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
540531
"""
541-
if primary_key is None:
542-
url = f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}'
543-
else:
544-
primary_key = urllib.parse.urlencode({'primaryKey': primary_key})
545-
url = f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}?{primary_key}'
532+
url = self._build_url(primary_key)
546533
return self.http.put(url, documents)
547534

548535
def update_documents_in_batches(
@@ -1256,3 +1243,13 @@ def _iso_to_date_time(iso_date: Optional[Union[datetime, str]]) -> Optional[date
12561243

12571244
def __settings_url_for(self, sub_route: str) -> str:
12581245
return f'{self.config.paths.index}/{self.uid}/{self.config.paths.setting}/{sub_route}'
1246+
1247+
def _build_url(
1248+
self,
1249+
primary_key: Optional[str] = None,
1250+
):
1251+
if primary_key is None:
1252+
return f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}'
1253+
else:
1254+
primary_key = urllib.parse.urlencode({'primaryKey': primary_key})
1255+
return f'{self.config.paths.index}/{self.uid}/{self.config.paths.document}?{primary_key}'

0 commit comments

Comments
 (0)