Skip to content

Commit 6107e57

Browse files
Merge pull request #827 from adamtheturtle/simpler-requests
Simpler requests
2 parents ebe1d60 + cf5d2d6 commit 6107e57

File tree

1 file changed

+49
-48
lines changed

1 file changed

+49
-48
lines changed

src/vws/vws.py

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

Comments
 (0)