Skip to content
This repository was archived by the owner on Mar 30, 2023. It is now read-only.

Commit 7d7d7ec

Browse files
author
Jason Costello
committed
Adding APIBaseError, plus intermediate handling of requests
1 parent 6e2e98f commit 7d7d7ec

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

hypervector/errors.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@ class APIKeyNotSetError(Exception):
22
pass
33

44

5+
class APIBaseError(Exception):
6+
pass
7+
8+
59
class HypervectorError(Exception):
610
def __init__(self, response=None):
711
self.response = response
8-
self.status_code = response.status_code
12+
if response:
13+
self.status_code = response.status_code
14+
else:
15+
self.status_code = None
916

1017

1118

hypervector/resources/abstract/api_resource.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import requests
22
import hypervector
3-
from hypervector.errors import APIKeyNotSetError, HypervectorError
3+
from hypervector.errors import APIKeyNotSetError, HypervectorError, APIBaseError
44

55

66
class APIResource:
@@ -19,15 +19,23 @@ def get_headers(cls):
1919
@classmethod
2020
def get(cls, uuid):
2121
endpoint = f'{hypervector.API_BASE}/{cls.resource_name}/{uuid}'
22-
response = requests.get(endpoint, headers=cls.get_headers())
22+
try:
23+
response = requests.get(endpoint, headers=cls.get_headers())
24+
except requests.ConnectionError:
25+
raise APIBaseError
26+
2327
if response.ok:
2428
return cls.from_get(response)
2529
else:
26-
raise HypervectorError(response)
30+
raise HypervectorError
2731

2832
@classmethod
2933
def request(cls, endpoint, method=requests.get):
30-
response = method(url=endpoint, headers=cls.get_headers())
34+
try:
35+
response = method(url=endpoint, headers=cls.get_headers())
36+
except requests.ConnectionError:
37+
raise APIBaseError
38+
3139
if response.ok:
3240
return response.json()
3341
else:

0 commit comments

Comments
 (0)