modelstore/App/Router/CategoryRouter.py

98 lines
3.3 KiB
Python
Raw Normal View History

2022-11-14 14:48:16 +08:00
from typing import List
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from App.Crud import CategoryCrud as Crud
from App.Schema import CategorySchema as Schema
2022-11-15 13:51:33 +08:00
from Utils.AccessControl.AccessUtil import rbac
2022-11-14 14:48:16 +08:00
from Utils.DataBase.SqlAlchemyUtils import get_db
router = APIRouter(
tags=["打分卡分类"],
2022-11-15 13:51:33 +08:00
prefix="/api/model_store/scorecard/category",
dependencies=[Depends(rbac)]
2022-11-14 14:48:16 +08:00
)
@router.post("/major/create", summary="新建主分类")
def func(schema: Schema.CreateMajorCategoryReqBody, db: Session = Depends(get_db)):
item = Crud.get_major_category_by_name(db=db, name=schema.name)
if item:
raise HTTPException(status_code=202, detail="MajorCategory Already Existed")
Crud.create_major_category(db=db, schema=schema)
return {"info": "Success"}
@router.post("/major/delete", summary="删除主分类")
def func(schema: Schema.DeleteMajorCategoryReqBody, db: Session = Depends(get_db)):
item = Crud.get_major_category_by_id(db=db, _id=schema.id)
if not item:
raise HTTPException(status_code=404, detail="MajorCategory Not Found")
2022-11-15 13:47:52 +08:00
result = Crud.delete_major_category(db=db, schema=schema)
if not result:
raise HTTPException(status_code=202, detail="MajorCategory Is Be Using")
2022-11-14 14:48:16 +08:00
return {"info": "Success"}
@router.post("/major/edit", summary="编辑主分类")
def func(_id: str, schema: Schema.EditMajorCategoryReqBody, db: Session = Depends(get_db)):
item = Crud.get_major_category_by_id(db=db, _id=_id)
if not item:
raise HTTPException(status_code=404, detail="MajorCategory Not Found")
result = Crud.edit_major_category(db=db, _id=_id, schema=schema)
if not result:
raise HTTPException(status_code=400, detail="InValid RequestBody")
return {"info": "Success"}
@router.post("/sub/create", summary="新建子分类")
def func(schema: Schema.CreateSubCategoryReqBody, db: Session = Depends(get_db)):
item = Crud.get_sub_category_by_name(db=db, name=schema.name)
if item:
raise HTTPException(status_code=202, detail="SubCategory Already Existed")
item = Crud.get_major_category_by_id(db=db, _id=schema.major_category_id)
if not item:
raise HTTPException(status_code=404, detail="MajorCategory Not Found")
Crud.create_sub_category(db=db, schema=schema)
return {"info": "Success"}
@router.post("/sub/delete", summary="删除子分类")
def func(_id: str, db: Session = Depends(get_db)):
item = Crud.get_sub_category_by_id(db=db, _id=_id)
if not item:
raise HTTPException(status_code=404, detail="SubCategory Not Found")
Crud.delete_sub_category(db=db, _id=_id)
return {"info": "Success"}
@router.post("/sub/edit", summary="编辑子分类")
def func(_id: str, schema: Schema.EditSubCategoryReqBody, db: Session = Depends(get_db)):
item = Crud.get_sub_category_by_id(db=db, _id=_id)
if not item:
raise HTTPException(status_code=404, detail="SubCategory Not Found")
Crud.edit_sub_category(db=db, _id=_id, schema=schema)
return {"info": "Success"}
@router.get("/list", summary="查看分类", response_model=List[Schema.ListMajorCategoryResBody])
def func(db: Session = Depends(get_db)):
items = Crud.list_major_category(db=db)
return Schema.ListMajorCategoryResBody.format(items)