40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""
|
|
Error handler controller for managing application exceptions.
|
|
|
|
This module provides custom error handlers for different HTTP status codes.
|
|
"""
|
|
from fastapi import HTTPException, Request
|
|
from fastapi.responses import JSONResponse
|
|
|
|
from src.server.utils.template_helpers import render_template
|
|
|
|
|
|
async def not_found_handler(request: Request, exc: HTTPException):
|
|
"""Custom 404 handler."""
|
|
if request.url.path.startswith("/api/"):
|
|
return JSONResponse(
|
|
status_code=404,
|
|
content={"detail": exc.detail}
|
|
)
|
|
return render_template(
|
|
"error.html",
|
|
request,
|
|
context={"error": "Page not found", "status_code": 404},
|
|
title="404 - Not Found"
|
|
)
|
|
|
|
|
|
async def server_error_handler(request: Request, exc: Exception):
|
|
"""Custom 500 handler."""
|
|
if request.url.path.startswith("/api/"):
|
|
return JSONResponse(
|
|
status_code=500,
|
|
content={"detail": "Internal server error"}
|
|
)
|
|
return render_template(
|
|
"error.html",
|
|
request,
|
|
context={"error": "Internal server error", "status_code": 500},
|
|
title="500 - Server Error"
|
|
)
|