Files

86 lines
2.9 KiB
Python

"""Stable, non-enumerating Console error contract for KnowledgeFS."""
from libs.exception import BaseHTTPException
from services.knowledge_fs.product_dto import KnowledgeFSPublicFailureResponse
class _KnowledgeFSFailureHTTPError(BaseHTTPException):
def __init__(self, failure: KnowledgeFSPublicFailureResponse | None = None) -> None:
super().__init__(failure.message if failure else None)
if failure is not None and self.data is not None:
self.data["failure"] = failure.model_dump(by_alias=True, exclude_none=True)
class KnowledgeFSSpaceNotFoundHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_space_not_found"
description = "KnowledgeFS space was not found."
code = 404
class KnowledgeFSResourceNotFoundHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_resource_not_found"
description = "KnowledgeFS resource was not found."
code = 404
class KnowledgeFSOperationUnavailableHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_operation_unavailable"
description = "KnowledgeFS operation is not available."
code = 503
class KnowledgeFSUpstreamUnavailableHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_upstream_unavailable"
description = "KnowledgeFS is unavailable."
code = 503
class KnowledgeFSInvalidRequestHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_invalid_request"
description = "KnowledgeFS request is invalid."
code = 400
class KnowledgeFSAccessDeniedHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_access_denied"
description = "KnowledgeFS operation is not allowed."
code = 403
class KnowledgeFSConflictHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_conflict"
description = "KnowledgeFS operation conflicts with the current resource state."
code = 409
class KnowledgeFSRequestTooLargeHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_request_too_large"
description = "KnowledgeFS request is too large."
code = 413
class KnowledgeFSRequestRejectedHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_request_rejected"
description = "KnowledgeFS request was rejected."
code = 422
class KnowledgeFSRateLimitHTTPError(_KnowledgeFSFailureHTTPError):
error_code = "knowledge_fs_rate_limit_exceeded"
description = "KnowledgeFS request rate limit exceeded."
code = 429
__all__ = [
"KnowledgeFSAccessDeniedHTTPError",
"KnowledgeFSConflictHTTPError",
"KnowledgeFSInvalidRequestHTTPError",
"KnowledgeFSOperationUnavailableHTTPError",
"KnowledgeFSRateLimitHTTPError",
"KnowledgeFSRequestRejectedHTTPError",
"KnowledgeFSRequestTooLargeHTTPError",
"KnowledgeFSResourceNotFoundHTTPError",
"KnowledgeFSSpaceNotFoundHTTPError",
"KnowledgeFSUpstreamUnavailableHTTPError",
]