test二轮完成的版本,并入了浩钦的班级模块
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
from database import get_db
|
||||
from scheme.wl_class_scheme import ClassCreate,ClassUpdate,ClassOut
|
||||
from dao import wl_class_dao
|
||||
from fastapi import HTTPException
|
||||
|
||||
# 创建班级模块的路由,统一前缀 /classes
|
||||
router = APIRouter(prefix="/classes", tags=["班级管理"])
|
||||
|
||||
# 1. 新增班级
|
||||
@router.post("/", response_model=ClassOut)
|
||||
def create_class(class_data: ClassCreate, db: Session = Depends(get_db)):
|
||||
return wl_class_dao.create_class(db, class_data.model_dump())
|
||||
|
||||
#为了合并先注释的部分
|
||||
# @router.post("/", response_model=ClassOut)
|
||||
# def create_class(class_data: ClassCreate, db: Session = Depends(get_db)):
|
||||
# 把 pydantic 对象转成字典,再传给 dao
|
||||
# if not db_class:
|
||||
# raise HTTPException(status_code=404, detail="班级不存在")
|
||||
|
||||
# 2. 获取班级列表
|
||||
@router.get("/", response_model=List[ClassOut])
|
||||
def read_classes(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
|
||||
return wl_class_dao.get_classes(db, skip, limit)
|
||||
|
||||
# 3. 获取单个班级详情
|
||||
@router.get("/{class_id}", response_model=ClassOut)
|
||||
def read_class(class_id: int, db: Session = Depends(get_db)):
|
||||
db_class = wl_class_dao.get_class_by_id(db, class_id)
|
||||
if not db_class:
|
||||
raise HTTPException(status_code=404, detail="班级不存在")
|
||||
return db_class
|
||||
|
||||
# 4. 修改班级
|
||||
@router.put("/{class_id}", response_model=ClassOut)
|
||||
def update_class(class_id: int, class_data: ClassUpdate, db: Session = Depends(get_db)):
|
||||
db_class = wl_class_dao.update_class(db, class_id, class_data.model_dump(exclude_unset=True))
|
||||
if not db_class:
|
||||
raise HTTPException(status_code=404, detail="班级不存在")
|
||||
return db_class
|
||||
|
||||
# 5. 删除班级(逻辑删除)
|
||||
@router.delete("/{class_id}")
|
||||
def delete_class(class_id: int, db: Session = Depends(get_db)):
|
||||
# 直接把 dao 的结果返回给前端,前端根据 code 判断是否成功
|
||||
return wl_class_dao.delete_class(db, class_id)
|
||||
Reference in New Issue
Block a user