Skip to content

Commit baeb167

Browse files
committed
Merge branch 'simplify-exception-tests' into client
2 parents 27529ba + cd86414 commit baeb167

1 file changed

Lines changed: 49 additions & 48 deletions

File tree

src/vws/vws.py

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)