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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
 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)
示例#6
0
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']