- Updated test functions in various test files to enhance code clarity by formatting long lines and improving indentation. - Adjusted assertions to use multi-line formatting for better readability. - Added new test cases for theme settings API to ensure proper functionality. - Ensured consistent use of line breaks and spacing across test files for uniformity.
20 lines
604 B
Python
20 lines
604 B
Python
from typing import Awaitable, Callable
|
|
|
|
from fastapi import HTTPException, Request, Response
|
|
|
|
MiddlewareCallNext = Callable[[Request], Awaitable[Response]]
|
|
|
|
|
|
async def validate_json(
|
|
request: Request, call_next: MiddlewareCallNext
|
|
) -> Response:
|
|
# Only validate JSON for requests with a body
|
|
if request.method in ("POST", "PUT", "PATCH"):
|
|
try:
|
|
# attempt to parse json body
|
|
await request.json()
|
|
except Exception:
|
|
raise HTTPException(status_code=400, detail="Invalid JSON payload")
|
|
response = await call_next(request)
|
|
return response
|