| from fastapi import HTTPException, status | |
| class VideoNotFoundError(HTTPException): | |
| """Exception raised when a video is not found.""" | |
| def __init__(self, video_id: str): | |
| super().__init__( | |
| status_code=status.HTTP_404_NOT_FOUND, | |
| detail=f"Video with ID {video_id} not found" | |
| ) | |
| class ResultNotFoundError(HTTPException): | |
| """Exception raised when a processing result is not found.""" | |
| def __init__(self, video_id: str): | |
| super().__init__( | |
| status_code=status.HTTP_404_NOT_FOUND, | |
| detail=f"Processing result for video with ID {video_id} not found" | |
| ) | |
| class VideoUploadError(HTTPException): | |
| """Exception raised when there is an error uploading a video.""" | |
| def __init__(self, detail: str = "Error uploading video"): | |
| super().__init__( | |
| status_code=status.HTTP_400_BAD_REQUEST, | |
| detail=detail | |
| ) | |
| class VideoProcessingError(HTTPException): | |
| """Exception raised when there is an error processing a video.""" | |
| def __init__(self, detail: str = "Error processing video"): | |
| super().__init__( | |
| status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
| detail=detail | |
| ) | |
| class InvalidParameterError(HTTPException): | |
| """Exception raised when a parameter is invalid.""" | |
| def __init__(self, parameter: str, detail: str = None): | |
| super().__init__( | |
| status_code=status.HTTP_400_BAD_REQUEST, | |
| detail=detail or f"Invalid parameter: {parameter}" | |
| ) | |
| class DatabaseError(HTTPException): | |
| """Exception raised when there is a database error.""" | |
| def __init__(self, detail: str = "Database error"): | |
| super().__init__( | |
| status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, | |
| detail=detail | |
| ) |