Skip to content

Commit 1b2c717

Browse files
authored
Merge pull request #13 from JigsawStack/check
Bug fix
2 parents dddf97e + 1102b44 commit 1b2c717

File tree

6 files changed

+27
-31
lines changed

6 files changed

+27
-31
lines changed

jigsawstack/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from .summary import Summary
1515
from .geo import Geo
1616
from .prompt_engine import PromptEngine
17+
from .exceptions import JigsawStackError
1718
# from .version import get_version
1819

1920
class JigsawStack:
@@ -66,4 +67,4 @@ def __init__(self, api_key: Union[str, None] = None, api_url: Union[str, None] =
6667
self.prompt_engine = PromptEngine(api_key=api_key, api_url=api_url)
6768

6869
# Create a global instance of the Web class
69-
__all__ = ["JigsawStack", "Search"]
70+
__all__ = ["JigsawStack", "Search", "JigsawStackError"]

jigsawstack/exceptions.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ class JigsawStackError(Exception):
2626
def __init__(
2727
self,
2828
code: Union[str, int],
29-
error_type: str,
3029
message: str,
3130
suggested_action: str,
31+
err: Union[str, Dict[str, Any]] = None,
3232
):
3333
Exception.__init__(self, message)
3434
self.code = code
3535
self.message = message
3636
self.suggested_action = suggested_action
37-
self.error_type = error_type
37+
self.error = err
38+
self.success = False
3839

3940

4041
class MissingApiKeyError(JigsawStackError):
@@ -172,7 +173,7 @@ def __init__(
172173

173174

174175
def raise_for_code_and_type(
175-
code: Union[str, int], error_type: str, message: str
176+
code: Union[str, int], message: str, err : Union[str, Dict[str, Any]] = None
176177
) -> None:
177178
"""Raise the appropriate error based on the code and type.
178179
@@ -201,21 +202,12 @@ def raise_for_code_and_type(
201202
# Handle the case where the error might be unknown
202203
if error is None:
203204
raise JigsawStackError(
204-
code=code, message=message, error_type=error_type, suggested_action=""
205+
code=code, message=message, err=err, suggested_action=""
205206
)
206207

207-
# Raise error from errors list
208-
error_from_list = error.get(error_type)
209-
210-
if error_from_list is not None:
211-
raise error_from_list(
212-
code=code,
213-
message=message,
214-
error_type=error_type,
215-
)
216208
# defaults to JigsawStackError if finally can't find error type
217209
raise JigsawStackError(
218-
code=code, message=message, error_type=error_type, suggested_action=""
210+
code=code, message=message, err=err, suggested_action=""
219211
)
220212

221213

jigsawstack/request.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,17 @@ def perform(self) -> Union[T, None]:
5050
if "application/json" not in resp.headers["content-type"]:
5151
raise_for_code_and_type(
5252
code=500,
53-
message="Failed to parse JigsawStack API response. Please try again.",
54-
error_type="InternalServerError",
53+
message="Failed to parse JigsawStack API response. Please try again."
5554
)
5655

5756
# handle error in case there is a statusCode attr present
5857
# and status != 200 and response is a json.
59-
if resp.status_code != 200 and resp.json().get("statusCode"):
58+
if resp.status_code != 200:
6059
error = resp.json()
6160
raise_for_code_and_type(
62-
code=error.get("statusCode"),
61+
code=resp.status_code,
6362
message=error.get("message"),
64-
error_type=error.get("name"),
63+
err=error.get("error"),
6564
)
6665

6766
return cast(T, resp.json())
@@ -74,18 +73,24 @@ def perform_file(self) -> Union[T, None]:
7473
# delete calls do not return a body
7574
if resp.text == "" and resp.status_code == 200:
7675
return None
77-
78-
7976
# handle error in case there is a statusCode attr present
8077
# and status != 200 and response is a json.
81-
if resp.status_code != 200 and resp.json().get("statusCode"):
78+
79+
80+
if "application/json" not in resp.headers["content-type"] and resp.status_code != 200:
81+
raise_for_code_and_type(
82+
code=500,
83+
message="Failed to parse JigsawStack API response. Please try again.",
84+
error_type="InternalServerError",
85+
)
86+
87+
if resp.status_code != 200:
8288
error = resp.json()
8389
raise_for_code_and_type(
84-
code=error.get("statusCode"),
90+
code=resp.status_code,
8591
message=error.get("message"),
86-
error_type=error.get("name"),
92+
err=error.get("error"),
8793
)
88-
8994
return resp
9095

9196
def perform_with_content(self) -> T:

jigsawstack/store.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ class Store(ClientConfig):
3737
def upload(self, file: bytes, options=FileUploadParams) -> Any:
3838
overwrite = options.get("overwrite")
3939
filename = options.get("filename")
40-
path =f"/store/file?overwrite={overwrite}&filename={filename}"
41-
42-
40+
path =f"/store/file?overwrite={overwrite}&key={filename}"
4341
headers = options.get("headers")
4442
_headers = {"Content-Type":"application/octet-stream"}
4543
if headers:

jigsawstack/web.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def html_to_any(self, params: HTMLToAnyParams) -> Any:
116116
api_key=self.api_key,
117117
api_url=self.api_url,
118118
path=path, params=cast(Dict[Any, Any], params), verb="post"
119-
).perform_with_content()
119+
).perform_with_content_file()
120120
return resp
121121

122122
def dns(self, params: DNSParams) -> DNSResponse:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name="jigsawstack",
9-
version="0.1.7",
9+
version="0.1.8",
1010
description="JigsawStack Python SDK",
1111
long_description=open("README.md", encoding="utf8").read(),
1212
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)