user-wsc/AppUser/Router/DepartmentRouter.py

45 lines
1.4 KiB
Python
Raw Normal View History

2022-11-10 00:58:14 +08:00
from fastapi import APIRouter, Depends, HTTPException
2022-11-07 14:19:46 +08:00
from sqlalchemy.orm import Session
2022-11-10 00:58:14 +08:00
from sqlalchemy.exc import IntegrityError
2022-11-07 14:19:46 +08:00
from AppUser.Crud import DepartmentCrud
2022-11-07 14:20:49 +08:00
2022-11-09 11:13:17 +08:00
from Utils.AccessControl import AccessUtil
2022-11-07 14:19:46 +08:00
from Utils.DataBase.SqlAlchemyUtils import get_db
router = APIRouter(
tags=["部门"],
prefix="/api/user/department",
2022-11-09 11:13:17 +08:00
dependencies=[Depends(AccessUtil.rbac)]
2022-11-07 14:19:46 +08:00
)
@router.post("/create", summary="新建部门")
def func01(name: str, db: Session = Depends(get_db)):
2022-11-10 00:58:14 +08:00
dp_obj = DepartmentCrud.get_department_by_name(db=db, name=name)
if dp_obj:
raise HTTPException(status_code=202, detail="Department Already Existed")
2022-11-07 14:19:46 +08:00
DepartmentCrud.create_department(db=db, name=name)
return {"info": "Success"}
2022-11-10 00:58:14 +08:00
@router.post("/delete", summary="删除部门")
def func02(dp_id: str, db: Session = Depends(get_db)):
dp_obj = DepartmentCrud.get_department_by_id(db=db, dp_id=dp_id)
if not dp_obj:
raise HTTPException(status_code=404, detail="Department Not Found")
try:
DepartmentCrud.delete_department_by_id(db=db, dp_id=dp_id)
except IntegrityError:
raise HTTPException(status_code=202, detail="Department Is Being Used")
return {"info": "Success"}
2022-11-07 14:19:46 +08:00
@router.get("/list", summary="部门列表")
2022-11-10 00:58:14 +08:00
def func03(db: Session = Depends(get_db)):
2022-11-07 14:19:46 +08:00
role_list = DepartmentCrud.get_department_list(db=db)
return role_list