diff --git a/src/ogd/apis/models/APIResponse.py b/src/ogd/apis/models/APIResponse.py index 68a8015..8820b44 100644 --- a/src/ogd/apis/models/APIResponse.py +++ b/src/ogd/apis/models/APIResponse.py @@ -130,6 +130,16 @@ def Status(self) -> ResponseStatus: :rtype: ResponseStatus """ return self._status + @property + def OK(self) -> bool: + """Property indicating whether the APIResponse was successful or not. + + Technically, this includes both a true "OK" response and any other 200-range response. + + :return: True if the APIResponse status is in the 200 range, otherwise False. + :rtype: bool + """ + return self.Status in ResponseStatus.SuccessStatuses() @property def AsDict(self): diff --git a/src/ogd/apis/models/enums/ResponseStatus.py b/src/ogd/apis/models/enums/ResponseStatus.py index 13566e0..b0bdf9c 100644 --- a/src/ogd/apis/models/enums/ResponseStatus.py +++ b/src/ogd/apis/models/enums/ResponseStatus.py @@ -81,6 +81,15 @@ class ResponseStatus(IntEnum): INSUFFICIENT_STORAGE = 507 LOOP_DETECTED = 508 + @staticmethod + def SuccessStatuses() -> Set["ResponseStatus"]: + """Gets the set of valid 400-level "client" error responses. + + :return: The set of valid 400-level "client" error responses. + :rtype: Set[ResponseStatus] + """ + return {status for status in set(ResponseStatus) if status in range(200, 300)} + @staticmethod def ClientErrors() -> Set["ResponseStatus"]: """Gets the set of valid 400-level "client" error responses. @@ -88,7 +97,7 @@ def ClientErrors() -> Set["ResponseStatus"]: :return: The set of valid 400-level "client" error responses. :rtype: Set[ResponseStatus] """ - return {status for status in set(ResponseStatus) if status in range(400, 499)} + return {status for status in set(ResponseStatus) if status in range(400, 500)} @staticmethod def ServerErrors() -> Set["ResponseStatus"]: @@ -97,7 +106,7 @@ def ServerErrors() -> Set["ResponseStatus"]: :return: The set of valid 500-level "server" error responses. :rtype: Set[ResponseStatus] """ - return {status for status in set(ResponseStatus) if status in range(500, 599)} + return {status for status in set(ResponseStatus) if status in range(500, 600)} def __str__(self): """Stringify function for ResponseStatus objects.