From 36e0245817f72ada628167f76381a83d71f680c5 Mon Sep 17 00:00:00 2001 From: Hojat Shafiee Date: Wed, 28 May 2025 14:25:31 +0330 Subject: [PATCH] add member --- core/views/userView.py | 56 +++++++++++------------------------------- 1 file changed, 14 insertions(+), 42 deletions(-) diff --git a/core/views/userView.py b/core/views/userView.py index ecda0d5..9940e58 100644 --- a/core/views/userView.py +++ b/core/views/userView.py @@ -1042,63 +1042,37 @@ def addSubscription(request): @authentication_classes([SessionAuthentication, TokenAuthentication]) @permission_classes([IsAuthenticated]) 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 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() - - # 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.username = username + 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'], - 'semat': request.data['semat'], - } + customer_data = { + 'user': user.id, + 'mobile_number': request.data['mobile_number'], # Ensure mobile number is provided + 'semat': request.data['semat'], + + } customer_serializer = CustomerSerializer(data=customer_data) if customer_serializer.is_valid(): customer_serializer.save() token = Token.objects.create(user=user) - - # 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) + return Response({'token': token.key, 'customer': customer_serializer.data, 'user': user_serializer.data}, status=status.HTTP_201_CREATED) else: # If customer data is invalid, delete the created user user.delete() @@ -1110,8 +1084,6 @@ def addTeamMember(request): - - @api_view(['GET']) @authentication_classes([SessionAuthentication, TokenAuthentication]) @permission_classes([IsAuthenticated])