62 lines
1.8 KiB
Python
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'),
|
|
})
|