from typing import Any, Optional from fastapi import status from fastapi.responses import JSONResponse class ResponseHandler: @staticmethod def success(message: str, data: Optional[Any] = None, status_code: int = status.HTTP_200_OK) -> JSONResponse: """Create a success response""" return JSONResponse( content={ "completed": True, "message": message, "data": data or {}, }, status_code=status_code, ) @staticmethod def error(message: str, data: Optional[Any] = None, status_code: int = status.HTTP_400_BAD_REQUEST) -> JSONResponse: """Create an error response""" return JSONResponse( content={ "completed": False, "message": message, "data": data or {}, }, status_code=status_code, ) @staticmethod def unauthorized(message: str = "Unauthorized access") -> JSONResponse: """Create an unauthorized response""" return ResponseHandler.error(message, status_code=status.HTTP_401_UNAUTHORIZED) @staticmethod def not_found(message: str = "Resource not found") -> JSONResponse: """Create a not found response""" return ResponseHandler.error(message, status_code=status.HTTP_404_NOT_FOUND)