61 lines
1.4 KiB
Python
61 lines
1.4 KiB
Python
"""Validation and resource exceptions."""
|
|
from gatehouse_app.exceptions.base import BaseAPIException
|
|
|
|
|
|
class ValidationError(BaseAPIException):
|
|
"""Raised when request data validation fails."""
|
|
|
|
status_code = 400
|
|
error_type = "VALIDATION_ERROR"
|
|
message = "Validation failed"
|
|
|
|
|
|
class NotFoundError(BaseAPIException):
|
|
"""Raised when a requested resource is not found."""
|
|
|
|
status_code = 404
|
|
error_type = "NOT_FOUND"
|
|
message = "Resource not found"
|
|
|
|
|
|
class ConflictError(BaseAPIException):
|
|
"""Raised when a resource conflict occurs."""
|
|
|
|
status_code = 409
|
|
error_type = "CONFLICT"
|
|
message = "Resource conflict"
|
|
|
|
|
|
class BadRequestError(BaseAPIException):
|
|
"""Raised when the request is malformed or invalid."""
|
|
|
|
status_code = 400
|
|
error_type = "BAD_REQUEST"
|
|
message = "Bad request"
|
|
|
|
|
|
class RateLimitExceededError(BaseAPIException):
|
|
"""Raised when rate limit is exceeded."""
|
|
|
|
status_code = 429
|
|
error_type = "RATE_LIMIT_EXCEEDED"
|
|
message = "Too many requests. Please try again later"
|
|
|
|
|
|
class EmailAlreadyExistsError(ConflictError):
|
|
"""Raised when attempting to register with an existing email."""
|
|
|
|
message = "Email address already registered"
|
|
|
|
|
|
class OrganizationNotFoundError(NotFoundError):
|
|
"""Raised when organization is not found."""
|
|
|
|
message = "Organization not found"
|
|
|
|
|
|
class UserNotFoundError(NotFoundError):
|
|
"""Raised when user is not found."""
|
|
|
|
message = "User not found"
|