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
|
|
|
|
from Utils.DataBase.SqlAlchemyUtils import get_db
|
|
|
|
|
|
|
|
router = APIRouter(
|
|
|
|
tags=["打分卡分类"],
|
2022-11-15 13:47:52 +08:00
|
|
|
prefix="/api/model_store/scorecard/category"
|
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)
|