Files
Django/users/views/change_leader_mp.py

62 lines
1.8 KiB
Python

"""小程序:管事更换组长。"""
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from users.services.change_leader import build_change_leader_info, change_leader_by_invite
class GuanshiChangeZuzhangInfoView(APIView):
"""
POST /yonghu/gs_huan_zuzhang_info
当前组长 + 剩余更换次数
"""
permission_classes = [IsAuthenticated]
def post(self, request):
result = build_change_leader_info(request, request.user)
if not result.get('ok'):
return Response({
'code': result.get('code', 403),
'msg': result.get('msg', '失败'),
'data': None,
})
return Response({
'code': 200,
'msg': result.get('msg', 'ok'),
'data': result.get('data'),
})
class GuanshiChangeZuzhangView(APIView):
"""
POST /yonghu/gs_huan_zuzhang
body: { inviteCode: 组长邀请码 }
"""
permission_classes = [IsAuthenticated]
def post(self, request):
invite = (
request.data.get('inviteCode')
or request.data.get('yaoqingma')
or ''
)
result = change_leader_by_invite(
request,
request.user,
invite,
source='miniapp',
operator=getattr(request.user, 'UserUID', '') or '',
)
if not result.get('ok'):
return Response({
'code': result.get('code', 400),
'msg': result.get('msg', '更换失败'),
'data': None,
})
return Response({
'code': 200,
'msg': result.get('msg', '更换组长成功'),
'data': result.get('data'),
})