@@ -120,40 +120,36 @@ def __init__(self, config=None):
120120 raise AttributeError ('Resource name not specified in class {}. '
121121 'Add an attribute `resource` with the name of the resource'
122122 .format (self .__class__ .__name__ ))
123- self .__api = ApiClient (config , self .__class__ .resource )
124-
125- @property
126- def _api (self ):
127- # type: () -> ApiClient
128- return self .__api
123+ self ._api = ApiClient (config , self .__class__ .resource )
129124
130125 @property
131126 def config (self ):
132127 # type: () -> Config
133128 return self ._api .config
134129
135- @property
136- def list (self ):
137- # type: () -> List[Any]
138- filters = self .build_filter ()
139- logger .info ('Get list request by filter - {}' .format (filters ))
140- response , _ = self ._api .get (params = filters )
141- return self ._load_schema (response )
142-
143- def build_filter (self ):
144- # type: () -> Dict[str, Any]
145- res_filter = {}
146- if self .limit :
147- res_filter ['limit' ] = self .limit
148- return res_filter
149-
150130 def get (self , pk ):
151131 # type: (str) -> Any
152132 response , _ = self ._api .get (path = pk )
153133 objects = self ._load_schema (response )
154134 if isinstance (objects , list ) and len (objects ) > 0 :
155135 return objects [0 ]
156136
137+ def filters (self , ** kwargs ):
138+ # type: (Dict[str, Any]) -> Dict[str, Any]
139+ filters = {}
140+ if self .limit :
141+ filters ['limit' ] = self .limit
142+ for key , val in kwargs .items ():
143+ filters [key ] = val
144+ return filters
145+
146+ def list (self , filters = None ):
147+ # type: (Dict[str, Any]) -> List[Any]
148+ filters = filters or self .filters ()
149+ logger .info ('Get list request with filters - {}' .format (filters ))
150+ response , _ = self ._api .get (params = filters )
151+ return self ._load_schema (response )
152+
157153 def _load_schema (self , response , many = None , schema = None ):
158154 # type: (str, bool, BaseSchema) -> Union[List[Any], Any]
159155 schema = schema or self .schema
0 commit comments