34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from fastapi import APIRouter, HTTPException
|
|
from pydantic import BaseModel
|
|
from typing import Optional, Dict, List
|
|
from services.exceptions_repo import get_all_exceptions_from_db, add_exception_to_db, remove_exception_from_db
|
|
|
|
router = APIRouter(prefix="/api/v1/exceptions", tags=["Exceptions"])
|
|
|
|
|
|
class ExceptionItem(BaseModel):
|
|
category: str
|
|
value: str
|
|
comment: Optional[str] = ""
|
|
|
|
|
|
@router.get("")
|
|
@router.get("/")
|
|
def api_get_exceptions():
|
|
return get_all_exceptions_from_db()
|
|
|
|
|
|
@router.post("")
|
|
@router.post("/")
|
|
def api_add_exception(item: ExceptionItem):
|
|
if not add_exception_to_db(item.category, item.value, item.comment):
|
|
raise HTTPException(status_code=400, detail="Ошибка добавления исключения")
|
|
return {"status": "success", "data": item}
|
|
|
|
|
|
@router.delete("")
|
|
@router.delete("/")
|
|
def api_delete_exception(category: str, value: str):
|
|
if not remove_exception_from_db(category, value):
|
|
raise HTTPException(status_code=404, detail="Исключение не найдено")
|
|
return {"status": "success"} |