ML-Learner / python_backend /src /Agents /utils /route_middleware.py
VashuTheGreat2's picture
Upload folder using huggingface_hub
c01955c verified
from functools import wraps
from typing import Callable
def route_middleware(*middlewares: Callable):
def decorator(route_func: Callable):
@wraps(route_func)
async def wrapper(*args, **kwargs):
req = kwargs.get("req")
if req is None:
raise ValueError("Route must have 'request: Request' parameter")
for middleware in middlewares:
result = middleware(req)
if callable(getattr(result, "__await__", None)):
await result
return await route_func(*args, **kwargs)
return wrapper
return decorator