label.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # coding:utf-8
  2. from fastapi import APIRouter, Depends
  3. from app.api import Response, get_current_user
  4. from app.models.base_model import get_db
  5. from app.models.label_model import LabelData, LabelModel, SignLabelData
  6. from app.models.user_model import UserModel
  7. from app.service.label import create_label_service, label_list_service, delete_role_service, sign_label_service
  8. label_router = APIRouter()
  9. @label_router.get("/list", response_model=Response)
  10. async def get_label_list(keyword="", labelType=1, objectId="",current_user: UserModel = Depends(get_current_user),
  11. db=Depends(get_db)):
  12. return Response(code=200, msg="", data=await label_list_service(db, keyword, labelType, objectId))
  13. @label_router.post("/add_label", response_model=Response)
  14. async def add_label_api(label: LabelData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  15. if not label.labelName:
  16. return Response(code=400, msg="The labelName cannot be empty!")
  17. db_role = db.query(LabelModel).filter(LabelModel.name == label.labelName).first()
  18. if db_role:
  19. return Response(code=400, msg="label already created")
  20. is_create = await create_label_service(db, label.labelName, label.labelType, current_user.id)
  21. if not is_create:
  22. return Response(code=500, msg="label create failure", data={})
  23. return Response(code=200, msg="label create successfully", data={"roleName": label.labelName})
  24. @label_router.delete("/delete_label", response_model=Response)
  25. async def delete_label_api(labelId: int, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  26. is_delete = await delete_role_service(db, labelId)
  27. if not is_delete:
  28. return Response(code=500, msg="label delete failure", data={})
  29. return Response(code=200, msg="label delete successfully", data={})
  30. @label_router.post("/sign_label", response_model=Response)
  31. async def sign_label_api(sign: SignLabelData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  32. is_add = await sign_label_service(db, sign.objectId, sign.labelIdList)
  33. if not is_add:
  34. return Response(code=500, msg="label add failure", data={})
  35. return Response(code=200, msg="label sign add successfully", data={})