XYHLF / App /schemas.py
Mbonea's picture
initial commit
9d4bd7c
from pydantic import BaseModel
from typing import Optional, Any
from fastapi import HTTPException
class ResponseModel(BaseModel):
success: bool
message: str
data: Optional[Any] = None
class AppException(HTTPException):
def __init__(self, status_code: int = 400, detail: str | ResponseModel = None):
if isinstance(detail, ResponseModel):
super().__init__(status_code=status_code, detail=detail.message)
self.data = detail.data
self.response_model = detail
else:
super().__init__(status_code=status_code, detail=str(detail) if detail else "An error occurred")
self.data = None
self.response_model = ResponseModel(
success=False,
message=str(detail) if detail else "An error occurred",
data=None
)