mirror of
https://github.com/Dadechin/Dashboard-XRoom.git
synced 2025-07-03 00:34:34 +00:00
add member
This commit is contained in:
parent
c0e8cfab8c
commit
36e0245817
|
@ -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'],
|
||||
'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])
|
||||
|
|
Loading…
Reference in New Issue
Block a user