@@ -148,6 +148,46 @@ def __init__(
148148 self ._server_secret_key = server_secret_key .encode ()
149149 self ._base_vws_url = base_vws_url
150150
151+ def _make_request (
152+ self ,
153+ method : str ,
154+ content : bytes ,
155+ request_path : str ,
156+ expected_result_code : str ,
157+ ) -> Response :
158+ """
159+ Make a request to the Vuforia Target API.
160+
161+ This uses `requests` to make a request against https://vws.vuforia.com.
162+ The content type of the request will be `application/json`.
163+
164+ Args:
165+ method: The HTTP method which will be used in the request.
166+ content: The request body which will be used in the request.
167+ request_path: The path to the endpoint which will be used in the
168+ request.
169+ expected_result_code: See
170+ https://library.vuforia.com/articles/Solution/How-To-Use-the-Vuforia-Web-Services-API.html#How-To-Interperete-VWS-API-Result-Codes
171+
172+ Returns:
173+ The response to the request made by `requests`.
174+ """
175+ response = _target_api_request (
176+ server_access_key = self ._server_access_key ,
177+ server_secret_key = self ._server_secret_key ,
178+ method = method ,
179+ content = content ,
180+ request_path = request_path ,
181+ base_vws_url = self ._base_vws_url ,
182+ )
183+
184+ _raise_for_result_code (
185+ response = response ,
186+ expected_result_code = expected_result_code ,
187+ )
188+
189+ return response
190+
151191 def add_target (
152192 self ,
153193 name : str ,
@@ -191,17 +231,10 @@ def add_target(
191231
192232 content = bytes (json .dumps (data ), encoding = 'utf-8' )
193233
194- response = _target_api_request (
195- server_access_key = self ._server_access_key ,
196- server_secret_key = self ._server_secret_key ,
234+ response = self ._make_request (
197235 method = 'POST' ,
198236 content = content ,
199237 request_path = '/targets' ,
200- base_vws_url = self ._base_vws_url ,
201- )
202-
203- _raise_for_result_code (
204- response = response ,
205238 expected_result_code = 'TargetCreated' ,
206239 )
207240
@@ -220,19 +253,13 @@ def get_target_record(self, target_id: str) -> Dict[str, Union[str, int]]:
220253 Returns:
221254 Response details of a target from Vuforia.
222255 """
223- response = _target_api_request (
224- server_access_key = self ._server_access_key ,
225- server_secret_key = self ._server_secret_key ,
256+ response = self ._make_request (
226257 method = 'GET' ,
227258 content = b'' ,
228259 request_path = f'/targets/{ target_id } ' ,
229- base_vws_url = self ._base_vws_url ,
230- )
231-
232- _raise_for_result_code (
233- response = response ,
234260 expected_result_code = 'Success' ,
235261 )
262+
236263 return dict (response .json ()['target_record' ])
237264
238265 @timeout_decorator .timeout (seconds = 60 * 5 )
@@ -268,19 +295,13 @@ def list_targets(self) -> List[str]:
268295 Returns:
269296 The IDs of all targets in the database.
270297 """
271- response = _target_api_request (
272- server_access_key = self ._server_access_key ,
273- server_secret_key = self ._server_secret_key ,
298+ response = self ._make_request (
274299 method = 'GET' ,
275300 content = b'' ,
276301 request_path = '/targets' ,
277- base_vws_url = self ._base_vws_url ,
278- )
279-
280- _raise_for_result_code (
281- response = response ,
282302 expected_result_code = 'Success' ,
283303 )
304+
284305 return list (response .json ()['results' ])
285306
286307 def get_target_summary_report (
@@ -299,19 +320,13 @@ def get_target_summary_report(
299320 Returns:
300321 Details of the target.
301322 """
302- response = _target_api_request (
303- server_access_key = self ._server_access_key ,
304- server_secret_key = self ._server_secret_key ,
323+ response = self ._make_request (
305324 method = 'GET' ,
306325 content = b'' ,
307326 request_path = f'/summary/{ target_id } ' ,
308- base_vws_url = self ._base_vws_url ,
309- )
310-
311- _raise_for_result_code (
312- response = response ,
313327 expected_result_code = 'Success' ,
314328 )
329+
315330 return dict (response .json ())
316331
317332 def get_database_summary_report (self ) -> Dict [str , Union [str , int ]]:
@@ -324,17 +339,10 @@ def get_database_summary_report(self) -> Dict[str, Union[str, int]]:
324339 Returns:
325340 Details of the database.
326341 """
327- response = _target_api_request (
328- server_access_key = self ._server_access_key ,
329- server_secret_key = self ._server_secret_key ,
342+ response = self ._make_request (
330343 method = 'GET' ,
331344 content = b'' ,
332345 request_path = '/summary' ,
333- base_vws_url = self ._base_vws_url ,
334- )
335-
336- _raise_for_result_code (
337- response = response ,
338346 expected_result_code = 'Success' ,
339347 )
340348
@@ -350,16 +358,9 @@ def delete_target(self, target_id: str) -> None:
350358 Args:
351359 target_id: The ID of the target to delete.
352360 """
353- response = _target_api_request (
354- server_access_key = self ._server_access_key ,
355- server_secret_key = self ._server_secret_key ,
361+ self ._make_request (
356362 method = 'DELETE' ,
357363 content = b'' ,
358364 request_path = f'/targets/{ target_id } ' ,
359- base_vws_url = self ._base_vws_url ,
360- )
361-
362- _raise_for_result_code (
363- response = response ,
364365 expected_result_code = 'Success' ,
365366 )
0 commit comments