Example #1
0
def recipes_detail(request, pk):
    JWT = JWTAuthentication()
    request_data = JWT.authenticate(
        request)  ##returns a tuple with user, token
    print(request_data[0])
    user = request_data[0]

    try:
        recipe = Recipe.objects.get(pk=pk)
    except Recipe.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = RecipeSerializer(recipe)
        return Response(serializer.data)

    elif request.method == 'PUT':
        serializer = RecipeSerializer(recipe, data=request.data)
        if serializer.is_valid():
            serializer.save(user=user)
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        recipe.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
 def format_data(self, data):
     JWT_authenticator = JWTAuthentication()
     # decode token
     user, _ = JWT_authenticator.authenticate(self.request)
     data['user'] = user.id
     data['date'] = format_date(data['date'])
     return data
Example #3
0
    def middleware(request):
        auth = JWTAuthentication()
        user = None
        try:
            user = auth.authenticate(request)
            #authenticate method returns tuple of user, validated_token or none
        except Exception:
            pass
        if user is not None:
            user = user[0]
        else:
            user = AnonymousUser()
        request.user = user
        response = get_response(request)

        return response
Example #4
0
    def create(self, request, *args, **kwargs):
        jwt_auth = JWTAuthentication()
        user, token = jwt_auth.authenticate(request)

        if not user:
            return Response(status=status.HTTP_401_UNAUTHORIZED)

        payload = self.request.data
        payload['likes'] = []
        payload['user'] = user.id

        serializer = blog_serializers.PostSerializer(data=payload)

        if serializer.is_valid():
            serializer.save()
            return Response(data=serializer.data,
                            status=status.HTTP_201_CREATED)
        return Response(data=serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Example #5
0
def ingredients_list(request):

    JWT = JWTAuthentication()
    request_data = JWT.authenticate(
        request)  ##returns a tuple with user, token
    print(request_data[0])
    user = request_data[0]

    if request.method == 'GET':
        data = user.ingredient_set.all()

        serializer = IngredientSerializer(data,
                                          context={'request': request},
                                          many=True)

        return Response(serializer.data)
    elif request.method == 'POST':
        serializer = IngredientSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #6
0
        def wrapper(parent, info, *args, **kwargs):

            if isinstance(info.context, HttpRequest):
                authenticator = JWTAuthentication()
                auth_result = authenticator.authenticate(info.context)

                if auth_result is None:
                    raise PermissionDenied()

                user, _ = auth_result

                if not user.is_authenticated:
                    raise NotAuthenticated()

                if with_policies is not None and len(with_policies) > 0:
                    is_allowed_request = PermissionService.check_policies(info.context, user, with_policies)
                    if not is_allowed_request:
                        raise PermissionDenied()

                kwargs["current_user"] = user
                resolved = resolver(parent, info, *args, **kwargs)

            return resolved
Example #7
0
def recipes_list(request):
    JWT = JWTAuthentication()
    request_data = JWT.authenticate(
        request)  ##returns a tuple with user, token
    print(request_data[0])
    user = request_data[0]  ##extracts user from the tuple

    try:
        if request.method == 'GET':
            data = user.recipe_set.all()

            query = request.GET.getlist('ingredients')
            exclusions = request.GET.getlist('exclude')

            if query:
                ##  data = Recipe.objects.filter(ingredients__in=query).distinct()
                data = user.recipe_set.all().filter(
                    ingredients__in=query).distinct()

            if exclusions:
                data = data.exclude(ingredients__in=exclusions)

            serializer = RecipeSerializer(data,
                                          context={'request': request},
                                          many=True)

            return Response(serializer.data)
        elif request.method == 'POST':
            serializer = RecipeSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save(user=user)
                return Response(status=status.HTTP_201_CREATED)
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
    except Exception as e:
        print(e)