from functools import wraps from fastapi import HTTPException class MissingIOTDataError(Exception): def __init__(self): super().__init__(f"Missing IOT data error.") def missing_iot_data_handler(func): @wraps(func) async def inner_function(*args, **kwargs): try: results = await func(*args, **kwargs) except MissingIOTDataError: raise HTTPException(status_code=400, detail="Missing data.") return results return inner_function