@@ -130,6 +130,46 @@ def __init__(
130130 self ._server_secret_key = server_secret_key .encode ()
131131 self ._base_vws_url = base_vws_url
132132
133+ def _make_request (
134+ self ,
135+ method : str ,
136+ content : bytes ,
137+ request_path : str ,
138+ expected_result_code : str ,
139+ ) -> Response :
140+ """
141+ Make a request to the Vuforia Target API.
142+
143+ This uses `requests` to make a request against https://vws.vuforia.com.
144+ The content type of the request will be `application/json`.
145+
146+ Args:
147+ method: The HTTP method which will be used in the request.
148+ content: The request body which will be used in the request.
149+ request_path: The path to the endpoint which will be used in the
150+ request.
151+ expected_result_code: See
152+ https://library.vuforia.com/articles/Solution/How-To-Use-the-Vuforia-Web-Services-API.html#How-To-Interperete-VWS-API-Result-Codes
153+
154+ Returns:
155+ The response to the request made by `requests`.
156+ """
157+ response = _target_api_request (
158+ server_access_key = self ._server_access_key ,
159+ server_secret_key = self ._server_secret_key ,
160+ method = method ,
161+ content = content ,
162+ request_path = request_path ,
163+ base_vws_url = self ._base_vws_url ,
164+ )
165+
166+ _raise_for_result_code (
167+ response = response ,
168+ expected_result_code = expected_result_code ,
169+ )
170+
171+ return response
172+
133173 def add_target (
134174 self ,
135175 name : str ,
@@ -173,17 +213,10 @@ def add_target(
173213
174214 content = bytes (json .dumps (data ), encoding = 'utf-8' )
175215
176- response = _target_api_request (
177- server_access_key = self ._server_access_key ,
178- server_secret_key = self ._server_secret_key ,
216+ response = self ._make_request (
179217 method = 'POST' ,
180218 content = content ,
181219 request_path = '/targets' ,
182- base_vws_url = self ._base_vws_url ,
183- )
184-
185- _raise_for_result_code (
186- response = response ,
187220 expected_result_code = 'TargetCreated' ,
188221 )
189222
@@ -202,19 +235,13 @@ def get_target_record(self, target_id: str) -> Dict[str, Union[str, int]]:
202235 Returns:
203236 Response details of a target from Vuforia.
204237 """
205- response = _target_api_request (
206- server_access_key = self ._server_access_key ,
207- server_secret_key = self ._server_secret_key ,
238+ response = self ._make_request (
208239 method = 'GET' ,
209240 content = b'' ,
210241 request_path = f'/targets/{ target_id } ' ,
211- base_vws_url = self ._base_vws_url ,
212- )
213-
214- _raise_for_result_code (
215- response = response ,
216242 expected_result_code = 'Success' ,
217243 )
244+
218245 return dict (response .json ()['target_record' ])
219246
220247 @timeout_decorator .timeout (seconds = 60 * 5 )
@@ -250,19 +277,13 @@ def list_targets(self) -> List[str]:
250277 Returns:
251278 The IDs of all targets in the database.
252279 """
253- response = _target_api_request (
254- server_access_key = self ._server_access_key ,
255- server_secret_key = self ._server_secret_key ,
280+ response = self ._make_request (
256281 method = 'GET' ,
257282 content = b'' ,
258283 request_path = '/targets' ,
259- base_vws_url = self ._base_vws_url ,
260- )
261-
262- _raise_for_result_code (
263- response = response ,
264284 expected_result_code = 'Success' ,
265285 )
286+
266287 return list (response .json ()['results' ])
267288
268289 def get_target_summary_report (
@@ -281,19 +302,13 @@ def get_target_summary_report(
281302 Returns:
282303 Details of the target.
283304 """
284- response = _target_api_request (
285- server_access_key = self ._server_access_key ,
286- server_secret_key = self ._server_secret_key ,
305+ response = self ._make_request (
287306 method = 'GET' ,
288307 content = b'' ,
289308 request_path = f'/summary/{ target_id } ' ,
290- base_vws_url = self ._base_vws_url ,
291- )
292-
293- _raise_for_result_code (
294- response = response ,
295309 expected_result_code = 'Success' ,
296310 )
311+
297312 return dict (response .json ())
298313
299314 def get_database_summary_report (self ) -> Dict [str , Union [str , int ]]:
@@ -306,17 +321,10 @@ def get_database_summary_report(self) -> Dict[str, Union[str, int]]:
306321 Returns:
307322 Details of the database.
308323 """
309- response = _target_api_request (
310- server_access_key = self ._server_access_key ,
311- server_secret_key = self ._server_secret_key ,
324+ response = self ._make_request (
312325 method = 'GET' ,
313326 content = b'' ,
314327 request_path = '/summary' ,
315- base_vws_url = self ._base_vws_url ,
316- )
317-
318- _raise_for_result_code (
319- response = response ,
320328 expected_result_code = 'Success' ,
321329 )
322330
@@ -332,16 +340,9 @@ def delete_target(self, target_id: str) -> None:
332340 Args:
333341 target_id: The ID of the target to delete.
334342 """
335- response = _target_api_request (
336- server_access_key = self ._server_access_key ,
337- server_secret_key = self ._server_secret_key ,
343+ self ._make_request (
338344 method = 'DELETE' ,
339345 content = b'' ,
340346 request_path = f'/targets/{ target_id } ' ,
341- base_vws_url = self ._base_vws_url ,
342- )
343-
344- _raise_for_result_code (
345- response = response ,
346347 expected_result_code = 'Success' ,
347348 )
0 commit comments