resource.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from fastapi import APIRouter, Depends
  2. from app.api import Response, pwd_context, get_current_user
  3. from app.models import MenuInfo, MenuStatus
  4. from app.models.base_model import get_db
  5. from app.models.user_model import UserModel
  6. from app.service.resource import get_resource_tree, get_resource_info, delete_resource_info, create_menu, \
  7. edit_resource_data, edit_resource_status
  8. menu_router = APIRouter()
  9. @menu_router.get("/tree_select", response_model=Response)
  10. async def resource_tree_select(current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  11. return Response(code=200, msg="", data=await get_resource_tree(db))
  12. @menu_router.get("/{menuId}", response_model=Response)
  13. async def resource_info(menuId, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  14. return Response(code=200, msg="", data=await get_resource_info(db, menuId))
  15. @menu_router.delete("/{menuId}", response_model=Response)
  16. async def delete_resource(menuId, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  17. msg = await delete_resource_info(db, menuId)
  18. if msg:
  19. return Response(code=400, msg=f"{msg}", data={})
  20. return Response(code=200, msg="menu delete successfully", data={})
  21. @menu_router.post("/add_menu", response_model=Response)
  22. async def resource_add_menu(menu: MenuInfo, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  23. if not menu.menuName:
  24. return Response(code=400, msg="The menuName cannot be empty!")
  25. if menu.status not in ["0", "1"]:
  26. return Response(code=400, msg="The status cannot be {}!".format(menu.status))
  27. is_create = await create_menu(db, menu.menuName, menu.component, menu.path, menu.orderNum, menu.perms, menu.menuType, menu.description, menu.parentId, menu.status,menu.icon)
  28. if not is_create:
  29. return Response(code=500, msg="menu create failure", data={})
  30. return Response(code=200, msg="menu create successfully", data={})
  31. @menu_router.put("/edit_menu", response_model=Response)
  32. async def resource_edit_menu(menu: MenuInfo, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  33. if not menu.menuName:
  34. return Response(code=400, msg="The menuName cannot be empty!")
  35. if menu.status not in ["0", "1"]:
  36. return Response(code=400, msg="The status cannot be {}!".format(menu.status))
  37. is_create = await edit_resource_data(db, menu.menuId, menu.menuName, menu.component, menu.path, menu.orderNum, menu.perms, menu.menuType, menu.description, menu.parentId, menu.status,menu.icon)
  38. if not is_create:
  39. return Response(code=500, msg="menu edit failure", data={})
  40. return Response(code=200, msg="menu edit successfully", data={})
  41. @menu_router.put("/status", response_model=Response)
  42. async def resource_edit_status(menu: MenuStatus, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  43. if menu.status not in ["0", "1"]:
  44. return Response(code=400, msg="The status cannot be {}!".format(menu.status))
  45. # is_create = await edit_resource_status(db, menu.menuId, menu.status)
  46. msg = await edit_resource_status(db, menu.menuId, str(menu.status))
  47. if msg:
  48. return Response(code=400, msg=f"{msg}", data={})
  49. return Response(code=200, msg="menu status update successfully", data={})