49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from fastapi import APIRouter,Depends,HTTPException
|
|
from schemas.class_schema import *
|
|
from core.database import get_db
|
|
from dao.class_dao import *
|
|
|
|
classes_router = APIRouter()
|
|
|
|
@classes_router.post('/',response_model=ClassResponse)
|
|
def post_classes(classes:ClassCreate,db=Depends(get_db)):
|
|
c = classes.model_dump()
|
|
r = post_classes_dao( c , db )
|
|
if r :
|
|
return ClassResponse( total=1,data=c )
|
|
else :
|
|
raise HTTPException(status_code=500,detail='添加失败,服务器繁忙,请稍后添加!')
|
|
|
|
|
|
@classes_router.put('/{id}',response_model=ClassResponse)
|
|
def put_classes(id:int,classes:ClassUpdate,db=Depends(get_db)):
|
|
updates = classes.model_dump( exclude_unset=True )
|
|
r = update_classes_dao( id , db , updates )
|
|
if r :
|
|
return ClassResponse( total=1,data=updates )
|
|
else :
|
|
raise HTTPException(status_code=500, detail='更新失败,该班级已不存在或服务器繁忙,请稍后更新!')
|
|
|
|
|
|
@classes_router.get('')
|
|
def get_classes( id:int|None = None
|
|
, class_no:str|None = None
|
|
, class_name:str|None = None
|
|
, page:int = 1
|
|
, page_size:int = 5
|
|
, db=Depends(get_db)
|
|
):
|
|
t,r = get_classes_dao( id , class_no , class_name , page , page_size ,db )
|
|
if t != 0 :
|
|
return ClassResponse( total = t, data = r )
|
|
else :
|
|
return ClassResponse( code = 404,detail = '没有符合条件的班级,请检查输入是否有误')
|
|
|
|
|
|
@classes_router.delete('/{id}',response_model=ClassResponse)
|
|
def delete_classes(id:int,db=Depends(get_db)):
|
|
r = update_classes_dao( id , db )
|
|
if r :
|
|
return ClassResponse( total=1,data='已成功删除班级信息' )
|
|
else :
|
|
raise HTTPException(status_code=500, detail='删除失败,该班级信息已不存在或服务器繁忙,请稍后更新!') |