Coverage for core\exceptions.py: 79%
24 statements
« prev ^ index » next coverage.py v7.16.0, created at 2026-10-17 16:50 +0800
« prev ^ index » next coverage.py v7.16.0, created at 2026-10-17 16:50 +0800
1from ninja.errors import HttpError
3class APIException(HttpError):
4 def __init__(self, status_code: int, message: str, code: str = "ERROR"):
5 super().__init__(status_code, message)
6 self.code = code
7 self.message = message
9class NotFoundException(APIException):
10 def __init__(self, message: str = "Resource not found"):
11 super().__init__(status_code=404, message=message, code="NOT_FOUND")
13class PermissionDeniedException(APIException):
14 def __init__(self, message: str = "Permission denied"):
15 super().__init__(status_code=403, message=message, code="PERMISSION_DENIED")
17class BadRequestException(APIException):
18 def __init__(self, message: str = "Bad request"):
19 super().__init__(status_code=400, message=message, code="BAD_REQUEST")
21class ConflictException(APIException):
22 def __init__(self, message: str = "Resource conflict"):
23 super().__init__(status_code=409, message=message, code="CONFLICT")
25class UnauthorizedException(APIException):
26 def __init__(self, message: str = "Authentication required"):
27 super().__init__(status_code=401, message=message, code="UNAUTHORIZED")
29class ForbiddenException(APIException):
30 def __init__(self, message: str = "Access denied"):
31 super().__init__(status_code=403, message=message, code="FORBIDDEN")