Skip to content

Commit d70e545

Browse files
committed
Start using helper for result codes
1 parent 06ec651 commit d70e545

File tree

1 file changed

+48
-30
lines changed

1 file changed

+48
-30
lines changed

src/vws/vws.py

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,26 @@ class _ResultCodes(Enum):
110110
INACTIVE_PROJECT = 'InactiveProject'
111111

112112

113-
_EXCEPTIONS = {
114-
_ResultCodes.IMAGE_TOO_LARGE: ImageTooLarge,
115-
_ResultCodes.METADATA_TOO_LARGE: MetadataTooLarge,
116-
_ResultCodes.TARGET_NAME_EXIST: TargetNameExist,
117-
_ResultCodes.TARGET_STATUS_PROCESSING: TargetStatusProcessing,
118-
_ResultCodes.UNKNOWN_TARGET: UnknownTarget,
119-
}
113+
def _raise_for_result_code(
114+
response: Response,
115+
expected_result_code: _ResultCodes,
116+
) -> None:
117+
"""
118+
Raise an appropriate exception if
119+
"""
120+
result_code = _ResultCodes(response.json()['result_code'])
121+
if result_code == expected_result_code:
122+
return
123+
124+
exception = {
125+
_ResultCodes.IMAGE_TOO_LARGE: ImageTooLarge,
126+
_ResultCodes.METADATA_TOO_LARGE: MetadataTooLarge,
127+
_ResultCodes.TARGET_NAME_EXIST: TargetNameExist,
128+
_ResultCodes.TARGET_STATUS_PROCESSING: TargetStatusProcessing,
129+
_ResultCodes.UNKNOWN_TARGET: UnknownTarget,
130+
}[result_code]
131+
132+
raise exception(response=response)
120133

121134

122135
class VWS:
@@ -192,12 +205,12 @@ def add_target(
192205
base_vws_url=self._base_vws_url,
193206
)
194207

195-
result_code = response.json()['result_code']
196-
if _ResultCodes(result_code) == _ResultCodes.TARGET_CREATED:
197-
return str(response.json()['target_id'])
208+
_raise_for_result_code(
209+
response=response,
210+
expected_result_code=_ResultCodes.TARGET_CREATED,
211+
)
198212

199-
exception = _EXCEPTIONS[_ResultCodes(result_code)]
200-
raise exception(response=response)
213+
return str(response.json()['target_id'])
201214

202215
def get_target_record(self, target_id: str) -> Dict[str, Union[str, int]]:
203216
"""
@@ -221,12 +234,11 @@ def get_target_record(self, target_id: str) -> Dict[str, Union[str, int]]:
221234
base_vws_url=self._base_vws_url,
222235
)
223236

224-
result_code = response.json()['result_code']
225-
if _ResultCodes(result_code) == _ResultCodes.SUCCESS:
226-
return dict(response.json()['target_record'])
227-
228-
exception = _EXCEPTIONS[_ResultCodes(result_code)]
229-
raise exception(response=response)
237+
_raise_for_result_code(
238+
response=response,
239+
expected_result_code=_ResultCodes.SUCCESS,
240+
)
241+
return dict(response.json()['target_record'])
230242

231243
@timeout_decorator.timeout(seconds=60 * 5)
232244
def wait_for_target_processed(self, target_id: str) -> None:
@@ -270,6 +282,10 @@ def list_targets(self) -> List[str]:
270282
base_vws_url=self._base_vws_url,
271283
)
272284

285+
_raise_for_result_code(
286+
response=response,
287+
expected_result_code=_ResultCodes.SUCCESS,
288+
)
273289
return list(response.json()['results'])
274290

275291
def get_target_summary_report(
@@ -297,12 +313,11 @@ def get_target_summary_report(
297313
base_vws_url=self._base_vws_url,
298314
)
299315

300-
result_code = response.json()['result_code']
301-
if _ResultCodes(result_code) == _ResultCodes.SUCCESS:
302-
return dict(response.json())
303-
304-
exception = _EXCEPTIONS[_ResultCodes(result_code)]
305-
raise exception(response=response)
316+
_raise_for_result_code(
317+
response=response,
318+
expected_result_code=_ResultCodes.SUCCESS,
319+
)
320+
return dict(response.json())
306321

307322
def get_database_summary_report(self) -> Dict[str, Union[str, int]]:
308323
"""
@@ -323,6 +338,11 @@ def get_database_summary_report(self) -> Dict[str, Union[str, int]]:
323338
base_vws_url=self._base_vws_url,
324339
)
325340

341+
_raise_for_result_code(
342+
response=response,
343+
expected_result_code=_ResultCodes.SUCCESS,
344+
)
345+
326346
return dict(response.json())
327347

328348
def delete_target(self, target_id: str) -> None:
@@ -344,9 +364,7 @@ def delete_target(self, target_id: str) -> None:
344364
base_vws_url=self._base_vws_url,
345365
)
346366

347-
result_code = response.json()['result_code']
348-
if _ResultCodes(result_code) == _ResultCodes.SUCCESS:
349-
return
350-
351-
exception = _EXCEPTIONS[_ResultCodes(result_code)]
352-
raise exception(response=response)
367+
_raise_for_result_code(
368+
response=response,
369+
expected_result_code=_ResultCodes.SUCCESS,
370+
)

0 commit comments

Comments
 (0)