group.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. from ast import parse
  2. from fastapi import APIRouter, Depends
  3. from app.api import Response, pwd_context, get_current_user, ResponseList
  4. from app.config.config import settings
  5. from app.models.base_model import get_db
  6. from app.models.group_model import GroupInfoModel, UserGroupModel, GroupData, GroupUsers
  7. from app.models.user import PageParameter
  8. from app.models.user_model import UserModel
  9. from app.service.bisheng import BishengService
  10. from app.service.group import create_group, group_list, edit_group_data, delete_group_data, get_group_users, \
  11. save_user_to_group
  12. from app.service.token import get_bisheng_token
  13. group_router = APIRouter()
  14. @group_router.post("/group_list", response_model=Response)
  15. async def user_group_list(paras: PageParameter, current_user: UserModel = Depends(get_current_user),
  16. db=Depends(get_db)):
  17. return Response(code=200, msg="", data=await group_list(db, paras.page_size, paras.page_index, paras.keyword))
  18. @group_router.post("/add_group", response_model=Response)
  19. async def add_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  20. if not group.group_name:
  21. return Response(code=400, msg="The group_name cannot be empty!")
  22. db_group = db.query(GroupInfoModel).filter(GroupInfoModel.group_name == group.group_name).first()
  23. if db_group:
  24. return Response(code=200, msg="group already created")
  25. is_create = await create_group(db, group.group_name, group.group_description)
  26. if not is_create:
  27. return Response(code=200, msg="group create failure", data={})
  28. return Response(code=200, msg="group create successfully", data={"group_name": group.group_name})
  29. @group_router.post("/edit_group", response_model=Response)
  30. async def edit_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  31. if not group.group_name:
  32. return Response(code=400, msg="The group_name cannot be empty!")
  33. db_group = db.query(GroupInfoModel).filter(GroupInfoModel.group_name == group.group_name).first()
  34. if db_group:
  35. return Response(code=200, msg="group_name already created")
  36. is_edit = await edit_group_data(db, group.id,
  37. {"group_name": group.group_name, "group_description": group.group_description})
  38. if not is_edit:
  39. return Response(code=200, msg="group edit failure", data={})
  40. return Response(code=200, msg="group edit successfully", data={"group_name": group.group_name})
  41. @group_router.post("/edit_group_status", response_model=Response)
  42. async def edit_group_status(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  43. if group.group_status not in [0, 1]:
  44. return Response(code=400, msg="The status cannot be {}!".format(group.group_status))
  45. db_group = db.query(GroupInfoModel).filter(GroupInfoModel.group_id == group.id).first()
  46. if not db_group:
  47. return Response(code=200, msg="group does not exist")
  48. is_edit = await edit_group_data(db, group.id,
  49. {"group_status": group.group_status})
  50. if not is_edit:
  51. return Response(code=200, msg="group status edit failure", data={})
  52. return Response(code=200, msg="group status edit successfully", data={"group_name": group.group_name})
  53. @group_router.post("/delete_group", response_model=Response)
  54. async def delete_group(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  55. db_group = db.query(GroupInfoModel).filter(GroupInfoModel.group_id == group.id).first()
  56. if not db_group:
  57. return Response(code=200, msg="group does not exist")
  58. is_edit = await delete_group_data(db, group.id)
  59. if not is_edit:
  60. return Response(code=200, msg="group delete failure", data={})
  61. return Response(code=200, msg="group delete successfully", data={})
  62. @group_router.post("/group_users", response_model=Response)
  63. async def group_users(group: GroupData, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
  64. db_group = db.query(GroupInfoModel).filter(GroupInfoModel.group_id == group.id).first()
  65. if not db_group:
  66. return Response(code=200, data={})
  67. return Response(code=200, msg="success", data=await get_group_users(db, group.id))
  68. @group_router.post("/save_group_user", response_model=Response)
  69. async def save_group_user(group_user: GroupUsers, current_user: UserModel = Depends(get_current_user),
  70. db=Depends(get_db)):
  71. db_group = db.query(GroupInfoModel).filter(GroupInfoModel.group_id == group_user.id).first()
  72. if not db_group:
  73. return Response(code=200, msg="group does not exist")
  74. is_success = await save_user_to_group(db, current_user.id, group_user.id, group_user.user_list)
  75. if not is_success:
  76. return Response(code=500, msg="save user to group failure", data={})
  77. return Response(code=200, msg="success", data={})