66"""
77
88import requests
9- from typing import Any
9+ from typing import Any , List , Dict
1010
1111from connect .config import Config
1212from connect .logger import function_log , logger
1313from connect .models import BaseSchema , ServerErrorSchema
14+ from connect .models .base import BaseModel
1415from connect .models .exception import ServerErrorException
1516from .utils import join_url
1617
@@ -33,7 +34,7 @@ def config(self):
3334
3435 @property
3536 def headers (self ):
36- # type: () -> dict
37+ # type: () -> Dict[str, str]
3738 return {
3839 "Authorization" : self .config .api_key ,
3940 "Content-Type" : "application/json" ,
@@ -99,8 +100,23 @@ def config(self):
99100 # type: () -> Config
100101 return self ._config
101102
103+ @property
104+ def list (self ):
105+ # type: () -> List[Any]
106+ filters = self .build_filter ()
107+ logger .info ('Get list request by filter - {}' .format (filters ))
108+ response = self .api .get (url = self ._list_url , params = filters )
109+ return self .__loads_schema (response )
110+
111+ def get (self , pk ):
112+ # type: (str) -> Any
113+ response = self .api .get (url = self ._obj_url (pk ))
114+ objects = self .__loads_schema (response )
115+ if isinstance (objects , list ) and len (objects ) > 0 :
116+ return objects [0 ]
117+
102118 def build_filter (self ):
103- # type: () -> dict
119+ # type: () -> Dict[str, Any]
104120 res_filter = {}
105121 if self .limit :
106122 res_filter ['limit' ] = self .limit
@@ -117,7 +133,7 @@ def _obj_url(self, pk):
117133 return join_url (self ._list_url , pk )
118134
119135 def __loads_schema (self , response ):
120- # type: (str) -> Any
136+ # type: (str) -> List[BaseModel]
121137 objects , error = self .schema .loads (response , many = True )
122138 if error :
123139 raise TypeError (
@@ -126,17 +142,3 @@ def __loads_schema(self, response):
126142 )
127143
128144 return objects
129-
130- def get (self , pk ):
131- # type: (str) -> Any
132- response = self .api .get (url = self ._obj_url (pk ))
133- objects = self .__loads_schema (response )
134- if isinstance (objects , list ) and len (objects ) > 0 :
135- return objects [0 ]
136-
137- def list (self ):
138- # type: () -> Any
139- filters = self .build_filter ()
140- logger .info ('Get list request by filter - {}' .format (filters ))
141- response = self .api .get (url = self ._list_url , params = filters )
142- return self .__loads_schema (response )
0 commit comments