Beispiel #1
0
def getProducts(request):

    query = request.query_params.get('keyword')

    print("query ### ",query)
    if query == None:
        query = ""

    # if the query is empty the filter showcase all the data
    products = Product.objects.filter(name__icontains=query)

    # get page from queryParams
    page = request.query_params.get('page')
    print("page from query_params ..",page)
    # Show 2 products per page.
    paginator = Paginator(products,5) 
    
    try:
        products = paginator.page(page)
    except PageNotAnInteger: # if page is not sent from frontend then go to first page
        products = paginator.page(1)
    except EmptyPage: # if we have 6 pages and user want to go to the 9 page then redirect the user to last page
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1

    page = int(page)    
    serialzer = ProductSerializer(products,many=True) 
    
   
    return Response({"products":serialzer.data, "page":page,"pages":paginator.num_pages})
Beispiel #2
0
def getProducts(request):
    # get search words from the url
    query = request.query_params.get('keyword')
    if query == None:
        query = ''
    # filter the query set with the search word
    products = Product.objects.filter(
        name__icontains=query).order_by('-createdAt')
    # get on witch page the user is from url params
    page = request.query_params.get('page')
    paginator = Paginator(products, 4)
    # Make the queryset of products to return for this page and search keywords
    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1
    # serialize and return data
    page = int(page)
    serializer = ProductSerializer(products, many=True)
    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
Beispiel #3
0
def get_top_products(request):

    products = Product.objects.filter(rating__gte=3).order_by('-rating')[0:5]

    serializer = ProductSerializer(products, many=True)

    return Response(serializer.data)
def getProducts(request):
    query = request.query_params.get('keyword')
    #print('query:', query)
    if query == None:
        query = ''

    products = Product.objects.filter(name__icontains=query)

    page = request.query_params.get('page')  # get current page
    paginator = Paginator(products, 4)

    try:
        products = paginator.page(page)
    except PageNotAnInteger:  # khong gui request trang moi
        products = paginator.page(1)
    except EmptyPage:  # Ex: user passed in page 40 or page has no content
        products = paginator.page(
            paginator.num_pages
        )  # won't allow user go outside of list products we have

    if page == None:
        page = 1

    page = int(page)  # make sure page always is integer

    serializer = ProductSerializer(products, many=True)
    print('page:', page)
    print('paginator:', paginator.num_pages)
    #print('products:', serializer.data)
    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
Beispiel #5
0
def getProducts(request):
    query = request.query_params.get('keyword')
    # print(f'query: {query}')

    if query is None:
        query = ''

    products = Product.objects.filter(name__icontains=query)

    page = request.query_params.get('page')
    # replace 1 to 10 to show 10 items per page
    paginator = Paginator(products, 10)

    try:
        products = paginator.page(page)
    except PageNotAnInteger:  # like page is not specific in request
        products = paginator.page(1)
    except EmptyPage:  # like requesting page 5 but we only have 4 pages, then return last page
        products = paginator.page(paginator.num_pages)

    if page is None:  # specifiying here since we need to return page number to user
        page = 1

    page = int(page)  # making sure we are returning standardized int

    serializer = ProductSerializer(products, many=True)
    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
def getProducts(request):
    query = request.query_params.get('keyword')

    if query == None:
        query = ''

    #return response from db
    products = Product.objects.filter(name__icontains=query)

    page = request.query_params.get('page')

    #number of query sets per page
    paginator = Paginator(products, 4)

    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        #show last page
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1

    page = int(page)

    serializer = ProductSerializer(products, many=True)
    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
Beispiel #7
0
def getProducts(request):
    user = request.user
    # if user.isauthenticated == true:
    #   print("SIIIII")
    if user != "AnonymousUser":
        print("JJAJAJAAJJ")
    elif user == "AnonymousUser":
        print("NONONONO")
    query = request.query_params.get('keyword')
    page = request.query_params.get('page')
    xd = request.query_params.get('xd')
    print("QUERY:", query)
    print("PAGE:", page)
    print("XD:", xd)
    if query == None:
        query = ''
    products = Product.objects.filter(name__icontains=query)
    page = request.query_params.get('page')
    paginator = Paginator(products, 5)  # here the number of products per page
    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1

    page = int(page)

    serializer = ProductSerializer(products, many=True)
    return Response({'products': serializer.data, 'page': page, 'pages': paginator.num_pages})
def getProducts(request):
    query = request.query_params.get('keyword')
    print('query: ', query)
    if query == None:
        query = ''

    products = Product.objects.filter(name__icontains=query)

    page = request.query_params.get('page')
    paginator = Paginator(products, 5)

    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1

    page = int(page)

    serializer = ProductSerializer(products, many=True)

    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
def getProduct(request, pk):
    product = Product.objects.get(_id=pk)
    serializer = ProductSerializer(product, many=False)
    #for i in products:
    #if i['_id'] == pk:
    #product = i
    #break
    return Response(serializer.data)
Beispiel #10
0
def getProduct(request, pk):
    try:
        product = Product.objects.get(_id=pk)
        serializer = ProductSerializer(product, many=False)
        return Response(serializer.data, status=status.HTTP_200_OK)
    except:
        message = {'detail': "Product doesn't exists, or other error occurred"}
        return Response(message, status=status.HTTP_404_NOT_FOUND)
Beispiel #11
0
def getProducts(request):
    #.all() return/query all products from the database
    # IN rest-framework, data needs to be serialized before returned to the frontend
    # If not serialized, will return error Object of type '' is not JSON serializable
    # Serialize turns the data to JSON form
    products = Product.objects.all()
    # Many=True serializing many products instead of just one
    serializer = ProductSerializer(products, many=True)
    return Response(serializer.data)
Beispiel #12
0
def getProducts(request):
    query = request.query_params.get('keyword')

    if query == None:
        query = ''

    products = Product.objects.filter(name__icontains=query)
    serializer = ProductSerializer(products, many=True)
    return Response(serializer.data)
Beispiel #13
0
def createProduct(request):
    user = request.user
    product = Product.objects.create(user=user,
                                     name='Product Name',
                                     price=0,
                                     brand='Brand Name',
                                     countInStock=0,
                                     category='Product Category',
                                     description='')
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Beispiel #14
0
def createProduct(request):
    print("Create Product")
    user = request.user
    product = Product.objects.create(user=user,
                                     name="sample",
                                     price=0,
                                     brand="sample brand",
                                     countInStock=0,
                                     category="sample category",
                                     description="")
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Beispiel #15
0
def updateProduct(request, pk):
    data = request.data
    product = Product.objects.get(_id=pk)
    product.name = data['name']
    product.price = data['price']
    product.brand = data['brand']
    product.countInStock = data['countInStock']
    product.category = data['category']
    product.description = data['description']
    product.save()
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
def createProduct(request):
    user = request.user
    product = Product.objects.create(
        user=user,
        name='Nowe imię',
        price=0,
        countInStock=0,
        category='Nowa kategoria',
        description='',
    )
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Beispiel #17
0
def getProducts(request):
    #returns the vlaue of 'keyword'
    query = request.query_params.get('keyword')

    #if user didn't search, just get all products
    if query == None:
        query = ''

    products = Product.objects.filter(name__icontains=query)
    #many - If applied to a to-many relationship, you should set this argument to True.
    serializer = ProductSerializer(products, many=True)
    return Response(serializer.data)
def getProduct(request, pk):
    """
    # used for products.py testing
    product = None
    for i in products:
        if i['_id'] == pk:
            product = i
            break
    return Response(product)
    """
    product = Product.objects.get(_id=pk)
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Beispiel #19
0
def createProduct(request):
    user = request.user
    data = request.data

    product = Product.objects.create(user=user,
                                     name=data['name'],
                                     price=data['price'],
                                     brand=data['brand'],
                                     countInStock=data['countInStock'],
                                     category=data['category'],
                                     description=data['description'])

    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Beispiel #20
0
def updateProduct(request, pk):
    user = request.user
    data = request.data
    product = Product.objects.get(_id=pk)
    product.name = data["name"]
    product.price = data["price"]
    product.brand = data["brand"]
    product.countInStock = data["countInStock"]
    product.category = data["category"]
    product.description = data["description"]
    product.save()
    serializer = ProductSerializer(product, many=False)

    return Response(serializer.data)
Beispiel #21
0
def add_product(request):
    user = request.user

    product = Product.objects.create(
        user=user,
        name="Sample Name",
        price=0,
        brand="Sample Brand",
        countInStock=0,
        category="Sample Category",
        description="Sample Description",
    )

    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Beispiel #22
0
def getProductsByCategory(request, pk):
    upper = int(request.GET.get('loadProductsCount', None))

    category = Category.objects.get(_id=pk)
    allproductsByCategory = Product.objects.filter(category=category)
    products = allproductsByCategory[0:upper]

    serializer = ProductSerializer(products, many=True)

    print(len(serializer.data))
    print(len(allproductsByCategory))

    size = True if (len(serializer.data)
                    == len(allproductsByCategory)) else False

    return Response({'data': serializer.data, 'isEndOfFeed': size})
Beispiel #23
0
def createProduct(request):
    try:
        user = request.user
        product = Product.objects.create(user=user,
                                         name="Sample name",
                                         price=0,
                                         brand="Sample brand",
                                         countInStock=0,
                                         category="Sample category",
                                         description="")

        serializer = ProductSerializer(product, many=False)
        return Response(serializer.data, status=status.HTTP_200_OK)
    except:
        message = {'detail': "Some error occurred"}
        return Response(message, status=status.HTTP_404_NOT_FOUND)
Beispiel #24
0
def getFavorites(request):

    upper = int(request.GET.get('loadFavoritesCount', None))
    user = request.user
    favoritesAll = user.favorite_set.all()
    favorites = favoritesAll[0:upper]
    serializer = FavoriteSerializer(favorites, many=True)

    my_list = list()

    for item in favorites:
        serialized = ProductSerializer(item.product)
        my_list.append(serialized.data)

    print(my_list)

    size = True if (len(my_list) == len(favoritesAll)) else False

    return Response({'data': my_list, 'isEndOfFeed': size})
Beispiel #25
0
def updateProduct(request, pk):
    try:
        data = request.data
        product = Product.objects.get(_id=pk)

        product.name = data['name']
        product.price = data['price']
        product.brand = data['brand']
        product.countInStock = data['countInStock']
        product.category = data['category']
        product.description = data['description']

        product.save()

        serializer = ProductSerializer(product, many=False)
        return Response(serializer.data, status=status.HTTP_200_OK)
    except:
        message = {'detail': "Product doesn't exists, or other error occurred"}
        return Response(message, status=status.HTTP_404_NOT_FOUND)
def getProducts(request):
    # return Response(products) # used for products.py testing

    # https://www.django-rest-framework.org/api-guide/requests/#query_params
    query = request.query_params.get(
        "search"
    )  # get the url parameter after ?search=. e.g., ?search=Airpods, query would be Airpods

    if query == None:
        query = ""

    # products = Product.objects.all() # used for get all the product objects

    # https://docs.djangoproject.com/en/3.2/topics/db/search/
    products = Product.objects.filter(name__icontains=query).order_by('_id')

    page = request.query_params.get("page")
    # https://docs.djangoproject.com/en/3.2/topics/pagination/
    paginator = Paginator(products, 8)

    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        # num_pages give you total pages
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1

    page = int(page)

    serializer = ProductSerializer(
        products, many=True
    )  # To serialize a queryset or list of objects instead of a single object instance
    return Response({
        "products": serializer.data,
        "page": page,
        "pages": paginator.num_pages
    })
def getProducts(request):
    products = Product.objects.all()
    page = request.query_params.get('page')
    paginator = Paginator(products, 5)

    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        products = paginator.page(paginator.num_pages)

    if page == None:
        page = 1

    page = int(page)

    serializer = ProductSerializer(products, many=True)
    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
def getProducts(request):
    query = request.query_params.get('keyword') #to search in search box
    if query == None:
        query = '' 
    products = Product.objects.filter(name__icontains=query) #if name contains any values in query then its going to filter it(i means case insensitive)
    
    # pagination
    page = request.query_params.get('page')
    paginator = Paginator(products, 8)
    
    try:
        products = paginator.page(page)
    except PageNotAnInteger:
        products = paginator.page(1)
    except EmptyPage:
        products = paginator.page(paginator.num_pages) #if we have 5 pages at the end and if user enters page that is not available we dont allow users to get outside the list of products and keep with in the last page
    
    if page == None:
        page = 1
    
    page = int(page)
    
    serializer = ProductSerializer(products, many=True)
    return Response({'products':serializer.data, 'page': page, 'pages': paginator.num_pages})
Beispiel #29
0
def getProduct(request, pk):
    product = Product.objects.get(_id=pk)
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
def getProducts(request):
    products = Product.objects.all()
    serializer = ProductSerializer(products, many=True)
    return Response(serializer.data)