@@ -74,127 +74,110 @@ def get_api_endpoints(self):
7474 return self .get_request_json ()
7575
7676 def get_projects (self , limit = 30 ):
77- return self .get_request_json (request_url = self .get_projects_url (), limit = limit )
77+ return self .get_request_json (path = self .get_projects_path (), limit = limit )
7878
7979 def get_project (self , project = None ):
80- return self .get_request_json (request_url = self .get_project_url (project ))
80+ return self .get_request_json (path = self .get_project_path (project ))
8181
8282 def get_spaces (self , project = None , limit = 30 ):
83- return self .get_request_json (
84- request_url = self .get_spaces_url (project ), limit = limit
85- )
83+ return self .get_request_json (path = self .get_spaces_path (project ), limit = limit )
8684
8785 def get_space (self , project = None , space = None ):
88- return self .get_request_json (request_url = self .get_space_url (project , space ))
86+ return self .get_request_json (path = self .get_space_path (project , space ))
8987
9088 def get_results (self , project = None , space = None , limit = 30 ):
9189 return self .get_request_json (
92- request_url = self .get_results_url (project , space ), limit = limit
90+ path = self .get_results_path (project , space ), limit = limit
9391 )
9492
9593 def get_result (self , result , project = None , space = None ):
96- return self .get_request_json (
97- request_url = self .get_result_url (result , project , space )
98- )
94+ return self .get_request_json (path = self .get_result_path (result , project , space ))
9995
10096 def get_result_failures (self , result , project = None , space = None , limit = 30 ):
10197 return self .get_request_json (
102- self .get_result_url (result , project , space ), path = "failures" , limit = limit
98+ path = "/" .join ([self .get_result_path (result , project , space ), "failures" ]),
99+ limit = limit ,
103100 )
104101
105102 def get_result_contents (
106- self , result , path = None , project = None , space = None , limit = 30
103+ self , result , contents_path = None , project = None , space = None , limit = 30
107104 ):
108- if path is None :
109- path = "contents"
110- elif "contents" not in path :
111- path = "/" .join (["contents" , path ])
105+ if contents_path is None :
106+ contents_path = "contents"
107+ elif contents_path . startswith ( "contents" ) is not True :
108+ contents_path = "/" .join (["contents" , contents_path ])
112109 return self .get_request_json (
113- self .get_result_url (result , project , space ), path = path , limit = limit
110+ path = "/" .join (
111+ [self .get_result_path (result , project , space ), contents_path ]
112+ ),
113+ limit = limit ,
114114 )
115115
116116 def get_metrics (self , project = None , space = None , limit = 30 ):
117- return self .get_request_json (self .get_metrics_url (project , space ), limit = limit )
117+ return self .get_request_json (self .get_metrics_path (project , space ), limit = limit )
118118
119119 def get_metric (self , metric , project = None , space = None ):
120120 if type (metric ) is not int :
121121 raise ValueError
122- return self .get_request_json (self .get_metric_url (metric , project , space ))
122+ return self .get_request_json (self .get_metric_path (metric , project , space ))
123123
124124 def get_metric_datasets (self , metric , project = None , space = None , limit = 30 ):
125125 return self .get_request_json (
126- self .get_metric_url (metric , project , space ), path = "datasets" , limit = limit
126+ "/" .join ([self .get_metric_path (metric , project , space ), "datasets" ]),
127+ limit = limit ,
127128 )
128129
129130 def post_projects (self , payload ):
130- return self .post_request_json (
131- request_url = self .get_projects_url (), payload = payload
132- )
131+ return self .post_request_json (path = self .get_projects_path (), payload = payload )
133132
134133 def post_spaces (self , payload ):
135- return self .post_request_json (
136- request_url = self .get_spaces_url (), payload = payload
137- )
134+ return self .post_request_json (path = self .get_spaces_path (), payload = payload )
138135
139136 def post_results (self , payload ):
140- return self .post_request_json (
141- request_url = self .get_results_url (), payload = payload
142- )
137+ return self .post_request_json (path = self .get_results_path (), payload = payload )
143138
144139 def post_metrics (self , payload ):
145- return self .post_request_json (
146- request_url = self .get_metrics_url (), payload = payload
147- )
140+ return self .post_request_json (path = self .get_metrics_path (), payload = payload )
148141
149142 def patch_project (self , payload , project = None ):
150143 return self .patch_request (
151- request_url = self .get_project_url (project = project ), payload = payload
144+ path = self .get_project_path (project = project ), payload = payload
152145 )
153146
154147 def patch_space (self , payload , project = None , space = None ):
155148 return self .patch_request (
156- request_url = self .get_space_url (project = project , space = space ),
157- payload = payload ,
149+ path = self .get_space_path (project = project , space = space ), payload = payload
158150 )
159151
160152 def patch_metric (self , payload , metric ):
161- return self .patch_request (
162- request_url = self .get_metric_url (metric ), payload = payload
163- )
153+ return self .patch_request (path = self .get_metric_path (metric ), payload = payload )
164154
165155 def patch_result (self , payload , result ):
166- return self .patch_request (
167- request_url = self .get_result_url (result ), payload = payload
168- )
156+ return self .patch_request (path = self .get_result_path (result ), payload = payload )
169157
170158 def delete_project (self , project = None ):
171- return self .delete_request (request_url = self .get_project_url (project = project ))
159+ return self .delete_request (path = self .get_project_path (project = project ))
172160
173161 def delete_space (self , project = None , space = None ):
174162 return self .delete_request (
175- request_url = self .get_space_url (project = project , space = space )
163+ path = self .get_space_path (project = project , space = space )
176164 )
177165
178166 def delete_result (self , result ):
179- return self .delete_request (request_url = self .get_result_url (result ))
167+ return self .delete_request (path = self .get_result_path (result ))
180168
181169 def delete_metric (self , metric ):
182- return self .delete_request (request_url = self .get_metric_url (metric ))
170+ return self .delete_request (path = self .get_metric_path (metric ))
183171
184- def get_request (self , request_url = None , path = None ):
185- if request_url is None :
186- request_url = self .get_api_url ()
187- if path is not None :
188- request_url = "/" .join ([request_url , path ])
189-
190- response = self ._api_request ("GET" , request_url )
172+ def get_request (self , path = None ):
173+ response = self ._api_request ("GET" , path = path )
191174 return response
192175
193- def get_request_json (self , request_url = None , path = None , limit = 30 ):
176+ def get_request_json (self , path = None , limit = 30 ):
194177 if type (limit ) is not int or limit <= 0 :
195178 raise ValueError
196- response = self .get_request (request_url , path )
197- if len (response .links ) is 0 :
179+ response = self .get_request (path )
180+ if len (response .links ) == 0 :
198181 return response .json ()
199182 else :
200183 next_url = response .links .get ("next" , None )
@@ -205,63 +188,69 @@ def get_request_json(self, request_url=None, path=None, limit=30):
205188 response_json .extend (response .json ())
206189 return response_json [:limit ]
207190
208- def post_request (self , payload , request_url ):
209- response = self ._api_request ("POST" , request_url , payload )
191+ def post_request (self , payload , path = None ):
192+ response = self ._api_request ("POST" , path = path , payload = payload )
210193 return response
211194
212- def post_request_json (self , payload , request_url ):
213- response = self .post_request (payload , request_url )
195+ def post_request_json (self , payload , path = None ):
196+ response = self .post_request (payload , path = path )
214197 return response .json ()
215198
216- def patch_request (self , payload , request_url = None ):
217- response = self ._api_request ("PATCH" , request_url , payload )
199+ def patch_request (self , payload , path = None ):
200+ response = self ._api_request ("PATCH" , path = path , payload = payload )
218201 return response
219202
220- def delete_request (self , request_url ):
221- response = self ._api_request ("DELETE" , request_url )
203+ def delete_request (self , path = None ):
204+ response = self ._api_request ("DELETE" , path = path )
222205 return response
223206
224207 def get_api_url (self ):
225208 return self .api_url
226209
227- def get_projects_url (self ):
228- return "/" . join ([ self . get_api_url (), " projects"])
210+ def get_projects_path (self ):
211+ return "projects"
229212
230- def get_project_url (self , project = None ):
213+ def get_project_path (self , project = None ):
231214 if project is None :
232215 if self .project is not None :
233216 project = self .project
234217 else :
235218 raise ValueError
236- return "/" .join ([self .get_projects_url (), str (project )])
219+ return "/" .join ([self .get_projects_path (), str (project )])
237220
238- def get_spaces_url (self , project = None ):
239- return "/" .join ([self .get_project_url (project ), "spaces" ])
221+ def get_spaces_path (self , project = None ):
222+ return "/" .join ([self .get_project_path (project ), "spaces" ])
240223
241- def get_space_url (self , project = None , space = None ):
224+ def get_space_path (self , project = None , space = None ):
242225 if project is None and type (space ) is int :
243- return "/" .join ([self . get_api_url (), "spaces" , str (space )])
226+ return "/" .join (["spaces" , str (space )])
244227 elif space is None :
245228 if self .space is not None :
246229 space = self .space
247230 else :
248231 raise ValueError
249232
250- return "/" .join ([self .get_spaces_url (project ), str (space )])
233+ return "/" .join ([self .get_spaces_path (project ), str (space )])
251234
252- def get_results_url (self , project = None , space = None ):
253- return "/" .join ([self .get_space_url (project , space ), "results" ])
235+ def get_results_path (self , project = None , space = None ):
236+ return "/" .join ([self .get_space_path (project , space ), "results" ])
254237
255- def get_result_url (self , result , project = None , space = None ):
256- return "/" .join ([self .get_results_url (project , space ), str (result )])
238+ def get_result_path (self , result , project = None , space = None ):
239+ return "/" .join ([self .get_results_path (project , space ), str (result )])
257240
258- def get_metrics_url (self , project = None , space = None ):
259- return "/" .join ([self .get_space_url (project , space ), "metrics" ])
241+ def get_metrics_path (self , project = None , space = None ):
242+ return "/" .join ([self .get_space_path (project , space ), "metrics" ])
260243
261- def get_metric_url (self , metric , project = None , space = None ):
262- return "/" .join ([self .get_metrics_url (project , space ), str (metric )])
244+ def get_metric_path (self , metric , project = None , space = None ):
245+ return "/" .join ([self .get_metrics_path (project , space ), str (metric )])
263246
264- def _api_request (self , method , request_url , payload = None ):
247+ def _api_request (self , method , path , payload = None ):
248+ if path is None :
249+ request_url = self .get_api_url ()
250+ elif self .get_api_url () in path :
251+ request_url = path
252+ else :
253+ request_url = "/" .join ([self .get_api_url (), path ])
265254 response = requests .request (
266255 method = method ,
267256 url = request_url ,
0 commit comments