46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
# 路由接口
|
|
from typing import List
|
|
|
|
from fastapi import APIRouter,Depends,HTTPException
|
|
from sqlalchemy.orm import Session
|
|
|
|
from database import get_db
|
|
from dao.classinfo_dao import create_class,get_class,get_all_class,update_class,delete_class
|
|
from scheme.classinfo_scheme import ClassCreate,ClassUpdate,ClassIn
|
|
|
|
|
|
router=APIRouter()
|
|
# 新增班级
|
|
@router.post("/",response_model=ClassIn)
|
|
def add_class(class_data:ClassCreate,db:Session=Depends(get_db)):
|
|
return create_class(db=db,obj=class_data)
|
|
|
|
# 条件查询(id / 名称筛选)
|
|
@router.get("/search",response_model=List[ClassIn])
|
|
def get_cls(class_id:int=None,class_name:str=None,db:Session=Depends(get_db)):
|
|
res_list=get_class(db=db,class_id=class_id,class_name=class_name)
|
|
if not res_list:
|
|
raise HTTPException(status_code=404,detail="班级不存在")
|
|
return res_list
|
|
|
|
# 查询全部有效班级
|
|
@router.get("/",response_model=List[ClassIn])
|
|
def get_all(db:Session=Depends(get_db)):
|
|
return get_all_class(db=db)
|
|
|
|
# 修改班级
|
|
@router.put("/{class_id}",response_model=ClassIn)
|
|
def up_class(class_id:int,class_data:ClassUpdate,db:Session=Depends(get_db)):
|
|
res=update_class(db=db,class_id=class_id,obj=class_data)
|
|
if not res:
|
|
raise HTTPException(status_code=404,detail="班级不存在")
|
|
return res
|
|
|
|
# 逻辑删除
|
|
@router.delete("/{class_id}")
|
|
def del_class(class_id:int,db:Session=Depends(get_db)):
|
|
res=delete_class(db=db,class_id=class_id)
|
|
if not res:
|
|
raise HTTPException(status_code=404,detail="班级不存在")
|
|
return {"msg":"逻辑删除成功"}
|