def post(self, request): """ Handles HTTP POST request :param request: Request object :return: Response """ if hasattr(request.user, 'organisationaccount'): manager_account = models.ManagerAccount.objects.\ filter(employee_id=request.data.pop('manager_employee_id')).first() if manager_account.belongs_to == request.user.organisationaccount: associate_serializer = AssociateAccountSerializer( data=request.data) if associate_serializer.is_valid(): user_data = request.data.pop('user_account') user_account = UserSerializer.create( UserSerializer(), validated_data=user_data) models.AssociateAccount.objects.create_associate_account( user_account=user_account, belongs_to=manager_account.belongs_to, reports_to=manager_account, employee_id=request.data.get('employee_id')) return Response(data=associate_serializer.data, status=status.HTTP_201_CREATED) if hasattr(request.user, 'manageraccount'): manager_account = models.ManagerAccount.objects.filter( user_account=request.user).first() associate_serializer = AssociateAccountSerializer( data=request.data) if associate_serializer.is_valid(): user_data = request.data.pop('user_account') user_account = UserSerializer.create(UserSerializer(), validated_data=user_data) models.AssociateAccount.objects.create_associate_account( user_account=user_account, belongs_to=manager_account.belongs_to, reports_to=manager_account, employee_id=request.data.get('employee_id')) return Response(data=associate_serializer.data, status=status.HTTP_201_CREATED) return Response(data={'Bad request!'}, status=status.HTTP_400_BAD_REQUEST)
def user_detail(request): if request.method == 'GET': serializer = UserSerializer(bbs) return Response(serializer.data) elif request.method == 'PUT': print(request.data) serializer = UserSerializer() serializer.create(request.data) return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': user.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def registration_view(request): serializer = UserSerializer(data=request.data) if serializer.is_valid(): user = serializer.create(request.data) request.data["token"] = Token.objects.get(user=user).key request.data["id"] = user.id return Response(request.data) else: return Response(serializer.errors)
def register(self, data): serializer = UserSerializer(data=data) if serializer.is_valid(): user = serializer.create(validated_data=serializer.validated_data) # generating JWT token token = generate_jwt_token(user) return Response({'access_token': token}, status=status.HTTP_200_OK) # response on validation error return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
def create_user(self, request): try: username = request.data['username'] password = request.data['password'] if not self.queryset.filter(username=username, password=password).exists(): user = UserSerializer.create(validated_data={ 'username': username, 'password': password }) serializer = UserSerializer(user) return Response(serializer.data, status=status.HTTP_200_OK) return Response({}, status=status.HTTP_409_CONFLICT) except KeyError: return Response({}, status=status.HTTP_400_BAD_REQUEST)
def test_UserSerialiser_create(default_user_data): serializer = UserSerializer(data=default_user_data) user = serializer.create(validated_data=default_user_data) assert user.email, default_user_data['email'] assert user.full_name, default_user_data['full_name']