Add exception response for 504

This commit is contained in:
Peter Annabel 2026-04-30 13:34:42 -05:00
parent 7532b475a7
commit 2bc5c5a4ca
4 changed files with 12 additions and 3 deletions

View File

@ -1,6 +1,6 @@
[project]
name = "pyhuntress"
version = "0.2.16"
version = "0.2.17"
authors = [
{ name="Peter Annabel", email="peter.annabel@gmail.com" },
]

View File

@ -21,6 +21,7 @@ from pyhuntress.exceptions import (
PermissionsFailedException,
ServerError,
TooManyRequestsException,
RequestTimedOutException,
)
if TYPE_CHECKING:
@ -77,6 +78,7 @@ class HuntressClient(ABC):
method,
url,
headers=headers,
timeout=180,
data=data,
params=cast(dict[str, Any], params or {}),
stream=stream,
@ -86,6 +88,7 @@ class HuntressClient(ABC):
method,
url,
headers=headers,
timeout=180,
params=cast(dict[str, Any], params or {}),
stream=stream,
)
@ -130,5 +133,7 @@ class HuntressClient(ABC):
return self._make_request(method, url, data, params, headers, retry_count)
raise Timeout(response=response)
raise ServerError(response)
if response.status_code == 504:
raise RequestTimedOutException(response)
return response

View File

@ -87,3 +87,7 @@ class ServerError(HuntressException):
class ObjectExistsError(HuntressException):
_code_explanation = "Object Exists"
_error_suggestion = "This resource already exists."
class RequestTimedOutException(HuntressException):
_code_explanation = "Request Timed Out"
_error_suggestion = "This resource is possibly busy or not responding. Try again later or use a smaller request."

View File

@ -120,7 +120,7 @@ class SATPhishingCampaigns(HuntressModel):
] | None = Field(default=None, alias="Type")
id: str | None = Field(default=None, alias="Id")
attributes: dict[str, Any] | None = Field(default=None, alias="Attributes")
relationships: dict[str, dict[str, dict[str, str]]] | None = Field(default=None, alias="Relationships")
relationships: dict[str, dict[str, Any]] | None = Field(default=None, alias="Relationships")
links: dict[str, str] | None = Field(default=None, alias="Links")
meta: dict[str, dict[str, int]] | None = Field(default=None, alias="Meta")
@ -131,7 +131,7 @@ class SATPhishingScenarios(HuntressModel):
] | None = Field(default=None, alias="Type")
id: str | None = Field(default=None, alias="Id")
attributes: dict[str, Any] | None = Field(default=None, alias="Attributes")
relationships: dict[str, dict[str, dict[str, str]]] | None = Field(default=None, alias="Relationships")
relationships: dict[str, dict[str, dict[str, Any]]] | None = Field(default=None, alias="Relationships")
links: dict[str, str] | None = Field(default=None, alias="Links")
meta: dict[str, dict[str, int]] | None = Field(default=None, alias="Meta")