from fastapi import APIRouter,Depends,HTTPException from schema.teacher_schema import TeacherRequest,TeacherResponse,TeacherUpdateRequest from database import get_db from dao.teacher_dao import add_teacher_dao,update_teacher_dao,get_teacher_dao,delete_teacher_dao TeacherAPI = APIRouter() @TeacherAPI.post('/teachers',response_model=TeacherResponse,summary='新增老师') def add_teachers(teacher:TeacherRequest,db=Depends(get_db)): d = teacher.model_dump() r = add_teacher_dao(t=d,db=db) if not r: raise HTTPException(status_code=400,detail='教师编号已存在或新增失败!') return teacher @TeacherAPI.put('/teachers/{teacher_id}',summary='更新老师') def update_teachers(teacher_id:str,teacher:TeacherUpdateRequest,db=Depends(get_db)): d = teacher.model_dump(exclude_unset=True) r = update_teacher_dao(teacher_id=teacher_id,data=d,db=db) #返回更新的行数 if not r: raise HTTPException(status_code=404,detail='老师不存在或未更新!') return {'code':200,'totals':r,'detail':'更新成功'} @TeacherAPI.get('/teachers',response_model=list[TeacherResponse],summary='查询老师') def get_teachers(teacher_id:str|None=None, teacher_name:str|None=None, db=Depends(get_db)): r = get_teacher_dao(teacher_id=teacher_id,teacher_name=teacher_name,db=db) if not r: raise HTTPException(status_code=404,detail='该老师不存在!') return r @TeacherAPI.delete('/teachers/{teacher_id}',summary='删除老师') def delete_teachers(teacher_id:str|None = None,db=Depends(get_db)): r = delete_teacher_dao(teacher_id,db) if not r: raise HTTPException(status_code=404,detail='老师不存在或删除失败!') return {'code':200,'totals':r,'detail':'删除成功!'}