add member

This commit is contained in:
Hojat Shafiee 2025-05-28 14:25:31 +03:30
parent c0e8cfab8c
commit 36e0245817

View File

@ -1042,63 +1042,37 @@ def addSubscription(request):
@authentication_classes([SessionAuthentication, TokenAuthentication]) @authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated]) @permission_classes([IsAuthenticated])
def addTeamMember(request): def addTeamMember(request):
# Print the incoming data for debugging purposes
print("Received data:", request.data)
# Ensure mobile number is provided and not empty
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 # Check if username already exists
if User.objects.filter(username=request.data['mobile_number']).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) 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 # Proceed with user creation
user_serializer = UserSerializer(data=request.data) user_serializer = UserSerializer(data=request.data)
if user_serializer.is_valid(): if user_serializer.is_valid():
user = user_serializer.save() user = user_serializer.save()
# Ensure the mobile_number is set as the username
username = request.data['mobile_number']
if not username.strip(): # Ensure the username is not empty
return Response({'username': ['Username cannot be empty.']}, status=status.HTTP_400_BAD_REQUEST)
user.set_password(request.data['password']) user.set_password(request.data['password'])
user.username = username user.username = request.data['mobile_number']
user.first_name = request.data['first_name'] user.first_name = request.data['first_name']
user.last_name = request.data['last_name'] user.last_name = request.data['last_name']
user.save() user.save()
# Proceed with customer data creation
customer_data = { customer_data = {
'user': user.id, 'user': user.id,
'mobile_number': request.data['mobile_number'], 'mobile_number': request.data['mobile_number'], # Ensure mobile number is provided
'semat': request.data['semat'], 'semat': request.data['semat'],
}
}
customer_serializer = CustomerSerializer(data=customer_data) customer_serializer = CustomerSerializer(data=customer_data)
if customer_serializer.is_valid(): if customer_serializer.is_valid():
customer_serializer.save() customer_serializer.save()
token = Token.objects.create(user=user) 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 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 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 and return success response
team_member = serializer.save()
return Response({
"message": "Team member added successfully.",
"team_member": serializer.data
}, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else: else:
# If customer data is invalid, delete the created user # If customer data is invalid, delete the created user
user.delete() user.delete()
@ -1110,8 +1084,6 @@ def addTeamMember(request):
@api_view(['GET']) @api_view(['GET'])
@authentication_classes([SessionAuthentication, TokenAuthentication]) @authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated]) @permission_classes([IsAuthenticated])