responses.py 935 B

12345678910111213141516171819202122232425262728
  1. from typing import Optional, Union
  2. from fastapi.responses import JSONResponse
  3. def success_response(data: Union[dict, list, str, None] = None, message: Optional[str] = None, status_code: int = 200, success: bool = True):
  4. return JSONResponse(status_code=status_code, content={
  5. "success": success,
  6. "message": message,
  7. "error": None,
  8. "data": data
  9. })
  10. def error_response(error: Union[str, Exception, dict, list, None]=None, message: Optional[str] = None, status_code: int = 500):
  11. if isinstance(error, dict):
  12. return JSONResponse(status_code=status_code, content={
  13. "success": False,
  14. "data": error,
  15. "message": message,
  16. "data": None
  17. })
  18. return JSONResponse(status_code=status_code, content={
  19. "success": False,
  20. "data": str(error),
  21. "message": message,
  22. "data": None
  23. })