views.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. from account.decorators import login_required
  2. from .models import Group
  3. from account.models import User, get_user
  4. from utils.decorators import debug_view
  5. from utils.http import make_json_response
  6. # Create your views here.
  7. @debug_view('username', 'token', 'group_id')
  8. @login_required
  9. def get_group_root_folder(request):
  10. user = get_user(request)
  11. data = request.POST
  12. group_id = data.get('group_id')
  13. try:
  14. group = user.joined_groups.get(group_id=group_id)
  15. except:
  16. return make_json_response(code=403, error='群不存在')
  17. root_folder = group.get_root_folder()
  18. return make_json_response(root_folder_id=root_folder.folder_id)
  19. @debug_view('username', 'token', 'group_id')
  20. @login_required
  21. def join_group(request):
  22. user = get_user(request)
  23. data = request.POST
  24. group_id = data.get('group_id')
  25. if user.joined_groups.filter(group_id=group_id).exists():
  26. return make_json_response(code=402, error='已在群内')
  27. try:
  28. group = Group.objects.get(group_id=group_id)
  29. except:
  30. return make_json_response(code=403, error='群不存在')
  31. group.members.add(user)
  32. group.save()
  33. return make_json_response()
  34. @debug_view('username', 'token', 'group_name')
  35. @login_required
  36. def create_group(request):
  37. user = get_user(request)
  38. data = request.POST
  39. group_name = data.get('group_name')
  40. try:
  41. Group.objects.create(group_name=group_name, creator=user)
  42. except:
  43. return make_json_response(code=500, error='新建群失败')
  44. return make_json_response()
  45. @debug_view('username', 'token', 'group_id')
  46. @login_required
  47. def quit_group(request):
  48. user = get_user(request)
  49. data = request.POST
  50. group_id = data.get('group_id')
  51. try:
  52. group = user.joined_groups.get(group_id=group_id)
  53. except:
  54. return make_json_response(code=403, error='群不存在')
  55. if group.creator == user:
  56. return make_json_response(code=421, error='群主不可退群')
  57. group.members.remove(user)
  58. group.save()
  59. return make_json_response()
  60. # 获取你所在的所有群组
  61. @debug_view('username', 'token')
  62. @login_required
  63. def group_list(request):
  64. user = get_user(request)
  65. _list = list(map(lambda g: g.to_json(), user.joined_groups.all()))
  66. return make_json_response(group_list=_list)
  67. # 删除群组