mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 07:28:38 +00:00
downstream: bsdd: raise informative HTTPError
Previously we were just passing `.json()` which allowed too many request error slip in to later occur as missing attributes on the dictionaries.
This commit is contained in:
+11
-1
@@ -522,7 +522,17 @@ class Client:
|
|||||||
headers = {"User-Agent": "IfcOpenShell.bSDD.py/0.8.0"}
|
headers = {"User-Agent": "IfcOpenShell.bSDD.py/0.8.0"}
|
||||||
if is_auth_required:
|
if is_auth_required:
|
||||||
headers["Authorization"] = "Bearer " + self.get_access_token()
|
headers["Authorization"] = "Bearer " + self.get_access_token()
|
||||||
return requests.get(f"{self.baseurl}{endpoint}", timeout=10, headers=headers, params=params or None).json()
|
response = requests.get(f"{self.baseurl}{endpoint}", timeout=10, headers=headers, params=params or None)
|
||||||
|
try:
|
||||||
|
response.raise_for_status()
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
try:
|
||||||
|
data = response.json()
|
||||||
|
message = data.get("message", data.get("error", str(e)))
|
||||||
|
except requests.exceptions.JSONDecodeError:
|
||||||
|
message = response.text or str(e)
|
||||||
|
raise requests.exceptions.HTTPError(f"{e}: {message}", response=response) from e
|
||||||
|
return response.json()
|
||||||
|
|
||||||
def _get_deprecated(self, endpoint, params=None, is_auth_required=False):
|
def _get_deprecated(self, endpoint, params=None, is_auth_required=False):
|
||||||
headers = {"User-Agent": "IfcOpenShell.bSDD.py/0.8.0"}
|
headers = {"User-Agent": "IfcOpenShell.bSDD.py/0.8.0"}
|
||||||
|
|||||||
Reference in New Issue
Block a user