Skip to content

Commit d814325

Browse files
authored
Merge pull request #91 from JaviCerveraIngram/CPS-76-rql-fix
CPS-76 Accept rql.Query in BaseResource.list method
2 parents 8285722 + a24149d commit d814325

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

connect/resources/base.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import functools
77
import logging
8-
from typing import Any, List, Dict, Tuple
8+
from typing import Any, List, Dict, Tuple, Union
99

1010
import requests
1111
from requests import compat
@@ -15,6 +15,7 @@
1515
from connect.logger import function_log
1616
from connect.models.base import BaseModel
1717
from connect.models.server_error_response import ServerErrorResponse
18+
from connect.rql import Query
1819

1920

2021
class ApiClient(object):
@@ -158,8 +159,13 @@ def filters(self, **kwargs):
158159
return filters
159160

160161
def list(self, filters=None):
161-
# type: (Dict[str, Any]) -> List[Any]
162+
# type: (Union[Query, Dict[str, Any]]) -> List[Any]
162163
filters = filters or self.filters()
163-
self.logger.info('Get list request with filters - {}'.format(filters))
164-
response, _ = self._api.get(params=filters)
164+
if isinstance(filters, Query):
165+
compiled = filters.compile()
166+
self.logger.info('Get list request with Query - {}'.format(compiled))
167+
response, _ = ApiClient(self._api.config, self._api.base_path + compiled).get()
168+
else:
169+
self.logger.info('Get list request with filters - {}'.format(filters))
170+
response, _ = self._api.get(params=filters)
165171
return self.model_class.deserialize(response)

0 commit comments

Comments
 (0)