from fastapi import APIRouter,Depends,HTTPException from Teachers.schema import * from Teachers.database import * from Teachers.model.tea_model import * from Teachers.dao.tea_dao import * from Teachers.schema.tea_request import TeaRequest,NewTeaRequest,NewTeaRequest1,SubRequest from Teachers.schema.tea_response import TeaResponse tea_api = APIRouter() @tea_api.post('/tea',response_model=TeaResponse,summary='新增老师',description='输入新增的老师信息,除去姓名外可以为空') def add_tea(tea: NewTeaRequest=Depends(),db=Depends(get_db)): r = add_tea_dao(tea.model_dump(exclude_unset=True),db) if not r: raise HTTPException(status_code=500,detail='添加失败!') return TeaResponse(totals=1,data=tea.model_dump()) @tea_api.get('/tea',response_model=TeaResponse,summary='查询老师',description='任意选择输入的信息数量,不输入则查询全部老师') def get_tea(t:TeaRequest=Depends(),db=Depends(get_db)): #开启会话窗口 r = get_tea_dao(t.model_dump(),db=db) if not r: raise HTTPException(status_code=404,detail='老师不存在') return TeaResponse(totals=len(r), data=r) @tea_api.delete('/tea/{id}',summary='删除老师',description='输入删除的老师id') def delete_tea(id:int|None,db=Depends(get_db)): r = delete_tea_dao(id,db) if not r: raise HTTPException(status_code=500,detail='删除失败!') return {'detail':'删除成功!'} @tea_api.put('/tea/{id}', summary='更新老师信息', description='输入更改的信息,可以为空') def update_tea(id: int, tea: NewTeaRequest = Depends(), db=Depends(get_db)): t = tea.model_dump(exclude_unset=True) print(t) r = update_tea_dao(id=id, t=t, db=db) if r == 'NOT_FOUND': raise HTTPException(status_code=404, detail='老师不存在') if r == 'NO_CHANGE': raise HTTPException(status_code=400, detail='没有要更新的内容') if isinstance(r, str) and r.startswith('ERROR'): raise HTTPException(status_code=400, detail=r) #先确认是字符串再调用字符串方法判断是不是以错误开头,是就报错给前端 return {'detail': '更新成功'} #根据任意信息删除 @tea_api.delete('/tea',summary='根据任意信息逻辑删除',description='输入任意信息删除') def delete_other_tea_dao1(t:TeaRequest=Depends(),db=Depends(get_db)): row1 = delete_other_tea_dao(t.model_dump(exclude_unset=True),db) if not row1: raise HTTPException(status_code=404,detail='没有找到符合条件的老师') return{'code':200,'data':row1} #新增科目 @tea_api.post('/subject',summary='新增科目',description='输入新增的科目') def add_sub(t:SubRequest=Depends(),db=Depends(get_db)): #开启会话窗口 r = add_subject_dao(t.model_dump(),db=db) if r=='已存在': raise HTTPException(status_code=500,detail='科目已存在') return TeaResponse(totals=len(r), data=r)