first commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""
|
||||
Error handling module.
|
||||
"""
|
||||
from fastapi import Request
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from .models import ErrorResponse, ErrorDetail
|
||||
|
||||
|
||||
def create_error_response(
|
||||
message: str,
|
||||
error_type: str = "invalid_request",
|
||||
param: str = None,
|
||||
code: str = None,
|
||||
status_code: int = 400,
|
||||
) -> JSONResponse:
|
||||
"""Create a standard error response."""
|
||||
error_detail = ErrorDetail(message=message, type=error_type, param=param, code=code)
|
||||
error_response = ErrorResponse(error=error_detail)
|
||||
return JSONResponse(status_code=status_code, content=error_response.model_dump())
|
||||
|
||||
|
||||
async def not_found_handler(request: Request, exc):
|
||||
"""404 error handler."""
|
||||
return create_error_response(
|
||||
message=f"Not found: {request.url.path}",
|
||||
error_type="not_found",
|
||||
status_code=404,
|
||||
)
|
||||
|
||||
|
||||
async def internal_error_handler(request: Request, exc):
|
||||
"""500 error handler."""
|
||||
return create_error_response(
|
||||
message="Internal server error",
|
||||
error_type="server_error",
|
||||
status_code=500
|
||||
)
|
||||
Reference in New Issue
Block a user