Example #1
0
    def update_details(self, request):
        if not request.body:
            return HttpResponseBadRequest(self.json_msg('all', "There was nothing submitted"))

        body = json.loads(request.body)
        user = User.objects.get(auth_token=body['auth'])

        if 'current-password' not in body:
            return HttpResponseBadRequest(self.json_msg('current-password', "No password provided"))

        if not user.check_password(body['current-password']):
            return HttpResponseBadRequest(self.json_msg('current-password', "The password provided isn't correct."))

        # Need to explicitly set password to have Django hash it
        if 'password' in body and body['password']:
            user.set_password(str(body['password']))
            body.pop('password', None)
            user.save()

        serializer = self.get_serializer(
            instance=user,
            data=body,
            partial=True
        )

        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data)
    def attempt_login(self, request):
        if not request.body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No request body provided',
            )

        body = json.loads(request.body)
        if 'api_url' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No api_url provided',
            )

        if 'username' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No username provided',
            )

        if 'password' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No password provided',
            )

        mds_login_response = requests.post(
            self.get_mds_url(body['api_url'], 'login/'),
            data={
                'username': body['username'],
                'password': body['password'],
            },
        )

        response_data = {}

        # If login was successful, update the mds instance info
        if mds_login_response.status_code == status.HTTP_200_OK:
            api_key = mds_login_response.body['api_key']

            mds_instance = models.MDSInstance.objects.get(
                user=self.request.user,
            )
            mds_instance_data = {
               'api_key': api_key,
               'api_url': body['api_url'],
            }
            serializer = self.get_serializer(
                instance=mds_instance,
                data=mds_instance_data,
                partial=True,
            )

            serializer.is_valid(raise_exception=True)
            serializer.save()
            response_data['mds_instance'] = serializer.data

        response_data['mds_status_code'] = mds_login_response.status_code
        return Response(response_data)
    def attempt_login(self, request):
        if not request.body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No request body provided',
            )

        body = json.loads(request.body)
        if 'api_url' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No api_url provided',
            )

        if 'username' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No username provided',
            )

        if 'password' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No password provided',
            )

        mds_login_response = requests.post(
            self.get_mds_url(body['api_url'], 'login/'),
            data={
                'username': body['username'],
                'password': body['password'],
            },
        )

        response_data = {}

        # If login was successful, update the mds instance info
        if mds_login_response.status_code == status.HTTP_200_OK:
            api_key = mds_login_response.body['api_key']

            mds_instance = models.MDSInstance.objects.get(
                user=self.request.user, )
            mds_instance_data = {
                'api_key': api_key,
                'api_url': body['api_url'],
            }
            serializer = self.get_serializer(
                instance=mds_instance,
                data=mds_instance_data,
                partial=True,
            )

            serializer.is_valid(raise_exception=True)
            serializer.save()
            response_data['mds_instance'] = serializer.data

        response_data['mds_status_code'] = mds_login_response.status_code
        return Response(response_data)
Example #4
0
    def partial_bulk_update(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())

        if not request.body:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        serializer = self.get_serializer(instance=queryset,
                                         data=json.loads(request.body),
                                         many=True,
                                         partial=True)

        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data)
Example #5
0
 def get(self, request):
     todo = favoriteBooks.objects.all()
     serializer = favoritesSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #6
0
    def partial_bulk_update(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())

        if not request.body:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        serializer = self.get_serializer(
            instance=queryset,
            data=json.loads(request.body),
            many=True,
            partial=True
        )

        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data)
    def update_details(self, request):
        if not request.body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'There was nothing submitted')

        body = json.loads(request.body)
        user = User.objects.get(auth_token=body['auth'])

        if 'current-password' not in body:
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                'No password provided')

        if not user.check_password(body['current-password']):
            return self.error_response(
                status.HTTP_400_BAD_REQUEST,
                "The password provided isn't correct.")

        # Need to explicitly set password to have Django hash it
        if 'password' in body and body['password']:
            user.set_password(str(body['password']))
            body.pop('password', None)
            user.save()

        serializer = self.get_serializer(
            instance=user,
            data=body,
            partial=True
        )

        serializer.is_valid(raise_exception=True)
        serializer.save()

        user_details = {
            'id': user.pk,
            'is_superuser': user.is_superuser,
            'first_name': user.first_name,
            'last_name': user.last_name,
            'username': user.username,
            'email': user.email,
        }

        return JsonResponse({'user': user_details})
Example #8
0
    def update_details(self, request):
        if not request.body:
            return self.error_response(status.HTTP_400_BAD_REQUEST,
                                       'There was nothing submitted')

        body = json.loads(request.body)
        user = User.objects.get(auth_token=body['auth'])

        if 'current-password' not in body:
            return self.error_response(status.HTTP_400_BAD_REQUEST,
                                       'No password provided')

        if not user.check_password(body['current-password']):
            return self.error_response(status.HTTP_400_BAD_REQUEST,
                                       "The password provided isn't correct.")

        # Need to explicitly set password to have Django hash it
        if 'password' in body and body['password']:
            user.set_password(str(body['password']))
            body.pop('password', None)
            user.save()

        serializer = self.get_serializer(instance=user,
                                         data=body,
                                         partial=True)

        serializer.is_valid(raise_exception=True)
        serializer.save()

        user_details = {
            'id': user.pk,
            'is_superuser': user.is_superuser,
            'first_name': user.first_name,
            'last_name': user.last_name,
            'username': user.username,
            'email': user.email,
        }

        return JsonResponse({'user': user_details})
Example #9
0
def user_list(request):
    """
    Api request for all users in the system, check.
    Extract Object from db get call / post create one.
    """
    if request.method == 'GET':
        users = User.objects.all()
        serializer = Userserializer(users, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = Userserializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #10
0
    
     """
    if request.method == 'DELETE':
        messaging = Messaging.objects.filter(message_id=message_id)
        serializer = Messagingserializer(messaging, many=True)
        structure = serializer.data
        if len(structure) == 0:
            return HttpResponse({'error: The message id doesnt exits'}, status=204)
        else:
            check = structure[0]['message_id']
            if check == message_id:
                messaging.delete()
                return HttpResponse({'The message deleted'},status=200)


@csrf_exempt
@api_view(['POST'])
@permission_classes((AllowAny,))
def create_message(request):
     """
     create message
     """
    if request.method == 'POST':
        data = JSONParser().parse(request)

        serializer = Messagingserializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)