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='删除失败,该班级信息已不存在或服务器繁忙,请稍后更新!')