add member

This commit is contained in:
Hojat Shafiee 2025-05-28 14:09:17 +03:30
parent d8da0aa5c3
commit 5dbf7314ca
2 changed files with 19 additions and 30 deletions

View File

@ -1039,72 +1039,63 @@ def addSubscription(request):
@api_view(['POST'])
@authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated])
@api_view(['POST'])
@authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated])
def addTeamMember(request):
# Ensure mobile number is provided
if 'mobile_number' not in request.data or not request.data['mobile_number'].strip():
return Response({'mobile_number': ['This field is required and cannot be empty.']}, status=status.HTTP_400_BAD_REQUEST)
# Check if username already exists
if User.objects.filter(username=request.data['mobile_number']).exists():
return Response({'username': ['A user with that username already exists.']}, status=status.HTTP_400_BAD_REQUEST)
# Ensure mobile number is provided
if 'mobile_number' not in request.data:
return Response({'mobile_number': ['This field is required.']}, status=status.HTTP_400_BAD_REQUEST)
# Proceed with user creation
user_serializer = UserSerializer(data=request.data)
if user_serializer.is_valid():
user = user_serializer.save()
user.set_password(request.data['password'])
# Ensure mobile_number is assigned to username field
user.username = request.data['mobile_number']
user.first_name = request.data['first_name']
user.last_name = request.data['last_name']
user.save()
# Proceed with customer data creation
customer_data = {
'user': user.id,
'mobile_number': request.data['mobile_number'], # Ensure mobile number is provided
'mobile_number': request.data['mobile_number'],
'semat': request.data['semat'],
}
customer_serializer = CustomerSerializer(data=customer_data)
if customer_serializer.is_valid():
customer_serializer.save()
token = Token.objects.create(user=user)
# return Response({'token': token.key, 'customer': customer_serializer.data, 'user': user_serializer.data}, status=status.HTTP_201_CREATED)
# Make a mutable copy of the request data
# Make a mutable copy of the request data for TeamMember
data = request.data.copy()
data['adminUser'] = request.user.id # Automatically assign the authenticated user as admin
data['user'] = user.id # Automatically assign the authenticated user as admin
data['user'] = user.id # Automatically assign the user as team member
# Pass the request object to the serializer context
serializer = TeamMemberSerializer(data=data, context={'request': request})
if serializer.is_valid():
# Save the team member using the validated data
team_member = serializer.save() # This automatically saves the team member
# Save the team member and return success response
team_member = serializer.save()
# Return the response with the team member data
return Response({
"message": "Team member added successfully.",
"team_member": serializer.data # This gives you the serialized data of the saved team member
"team_member": serializer.data
}, status=status.HTTP_201_CREATED)
else:
# If validation fails, return the errors
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else:
# If customer data is invalid, delete the created user
user.delete()
@ -1121,8 +1112,6 @@ def addTeamMember(request):
@api_view(['GET'])
@authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated])

View File

@ -91,7 +91,7 @@ Authorization: token d3f1b03996140c8f7561d67221953ff704b482cb
POST http://my.xroomapp.com:8000/add_teamMember
Content-Type: application/json
Authorization: token 8dcae0063521ca707a9d0ab6ce3d4794a90064ca
Authorization: token a6e1d5db61c4e8b2a0a4c0b623915e3b3a68df40
{ "mobile_number": "09140086608", "first_name":"mahdi", "last_name":"arabi", "semat":"modir", "password": "12345678", "isAdmin":"true" }