Files
Student_Management_System/api/class_management_api.py
T

44 lines
1.8 KiB
Python
Raw Normal View History

2026-09-21 14:17:12 +08:00
from fastapi import APIRouter,Depends,HTTPException
from dao.class_management_dao import add_class_dao, update_class_dao, get_class_dao, delete_class_dao
from database import get_db
from schema.class_management_request import ClassCreate, ClassResponse, ClassUpdate
class_api = APIRouter(tags=['班级管理模块'])
@class_api.post("/classes",summary='新增班级')
def add_class(cla:ClassCreate,db=Depends(get_db)):
c_dict = cla.model_dump()
r = add_class_dao(c=c_dict,db=db)
if not r:
raise HTTPException(status_code=500,detail='服务器繁忙,请稍后添加!')
return ClassResponse(totals=1,data=c_dict)
@class_api.get('/classes/{class_id}',summary='根据id查询班级')
def get_one_class(class_id:int,db=Depends(get_db)):
res = get_class_dao(c={'class_id':class_id},db=db)
if not res:
raise HTTPException(status_code=404, detail="该班级不存在或已删除")
return ClassResponse(data=res)
@class_api.put("/classes/{class_id}",summary='修改班级信息')
def update_class(update_info:ClassUpdate,cid:int,db=Depends(get_db)):
update_dict=update_info.model_dump(exclude_unset=True)
if not update_dict:
raise HTTPException(status_code=400, detail="没有传入要修改的字段")
row_count = update_class_dao(cname=cid, update_data=update_dict, db=db)
if row_count <= 0:
raise HTTPException(status_code=404, detail="班级不存在,修改失败")
return ClassResponse(detail="修改成功", data={"class_id": cid})
@class_api.delete('/classes/{class_id}',summary='逻辑删除班级')
def remove_class(class_id:int,db=Depends(get_db)):
del_rows = delete_class_dao(class_id,db)
if del_rows <= 0:
raise HTTPException(status_code=404, detail="班级不存在,删除失败")
return ClassResponse(detail='删除成功',data={'class_id':class_id})