init
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
|
||||
class ErrorCode(str, Enum):
|
||||
INVALID_WORKFLOW_TYPE = "INVALID_WORKFLOW_TYPE"
|
||||
SQL_GENERATION_FAILED = "SQL_GENERATION_FAILED"
|
||||
TABLE_MATCH_FAILED = "TABLE_MATCH_FAILED"
|
||||
SQL_EXECUTION_FAILED = "SQL_EXECUTION_FAILED"
|
||||
RAGFLOW_RETRIEVE_FAILED = "RAGFLOW_RETRIEVE_FAILED"
|
||||
CONFIG_INVALID = "CONFIG_INVALID"
|
||||
INTERNAL_ERROR = "INTERNAL_ERROR"
|
||||
|
||||
|
||||
@dataclass
|
||||
class AppError(Exception):
|
||||
code: ErrorCode
|
||||
message: str
|
||||
status_code: int = 500
|
||||
detail: Optional[Dict[str, Any]] = None
|
||||
|
||||
def to_dict(self) -> Dict[str, Any]:
|
||||
return {
|
||||
"code": self.code.value,
|
||||
"message": self.message,
|
||||
"detail": self.detail or {},
|
||||
}
|
||||
Reference in New Issue
Block a user