Ejemplo n.º 1
0
def getProducts(request):
    query = request.query_params.get('keyword')
    print('QUERY: ', query)
    if query != None:
        products = Product.objects.filter(name__icontains= query)
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)
    else:
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)
        return Response(serializer.data)
Ejemplo n.º 2
0
def updateProduct(request, pk):
    stripe.api_key = settings.STRIPE_SECRET_KEY
    data = request.data
    product = Product.objects.get(_id=pk)

    product.name = data['name']
    product.price = data['price']
    product.brand = data['brand']
    product.countInStock = Decimal(data['countInStock'])
    product.description = data['description']

    stripe_product= stripe.Product.modify(
      product.stripe_product_id,
      name= data['name'],
      description= data['description'],
      attributes= [data['brand']],
    )
    # product.categories = data['categories']
    try:
        product.categories.clear()
        cat_list = data['categories'].split(",")
        for category in cat_list:
            cat = Category.objects.get(_id=category)
            product.categories.add(cat)
        product.save()
        serializer = ProductSerializer(product, many=False)
        return Response(serializer.data)
    except:
        return Response({'detail':'Category does not exists'}, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 3
0
def getProducts(request):
    query = request.query_params.get('keyword')
    if query == None:
        query = ''

    products = Product.objects.filter(
        name__icontains=query).order_by('-createdAt')

    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)
    print('Page:', page)
    print('Keyword: ', query)
    serializer = ProductSerializer(products, many=True)
    return Response({
        'products': serializer.data,
        'page': page,
        'pages': paginator.num_pages
    })
Ejemplo n.º 4
0
def getProducts(request):
    query = request.query_params.get('keyword')
    if (query == None):
        query = ''

    # Query the DB for all the products
    products = Product.objects.filter(name__icontains = query)

    #getting the page number
    page = request.query_params.get('page')
    paginator = Paginator(products, 4)

    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})
Ejemplo n.º 5
0
def getProductsByCategory(request, pk):
    category = Category.objects.get(_id=pk)

    products_of_category = category.product_set.all()

    serializer = ProductSerializer(products_of_category, many=True)

    return Response(serializer.data)
Ejemplo n.º 6
0
def getFarmerProducts(request):
    user = request.user
    #farmerUser = UserSerializer(user, many=False)

    #products = Product.objects.filter(user_id=user.id)
    products = user.product_set.all()
    serializer = ProductSerializer(products, many=True)

    return Response(serializer.data)
Ejemplo n.º 7
0
def createProduct(request):
    user = request.user
    product = Product.objects.create(user=user,
                                     name='Example Name',
                                     brand='Example Brand',
                                     category='Example Category',
                                     description='Example Description',
                                     price=0,
                                     countInStock=0)
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Ejemplo n.º 8
0
def updateProduct(request, pk):
    data = request.data
    product = Product.objects.get(_id=pk)
    product.name = data['name']
    product.brand = data['brand']
    product.category = data['category']
    product.description = data['description']
    product.price = data['price']
    product.countInStock = data['countInStock']

    product.save()

    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Ejemplo n.º 9
0
def createProduct(request):
    user = request.user
    # We are going to create a dummy product & Edit the data afterwards
    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)
Ejemplo n.º 10
0
def getTopProductsPerCategory(request):
    categories =  Category.objects.all()

    top_products_per_category = []

    for category in categories:
        top_products_per_category += category.product_set.filter(rating__gte=4).order_by('rating')[0:2]

    for product in top_products_per_category:
        for duplicate in top_products_per_category:
            if product._id == duplicate._id:
                top_products_per_category.remove(product)

    serializer = ProductSerializer(top_products_per_category, many=True)
    return Response(serializer.data)
Ejemplo n.º 11
0
def updateProduct(request, pk):
    data = request.data
    product = Product.objects.get(_id=pk)

    product.user = request.user
    product.name = data["name"]
    product.brand = data["brand"]
    product.category = data["category"]
    product.description = data["description"]
    product.price = data["price"]
    product.countInStock = data["countInStock"]

    product.save()
    serializer = ProductSerializer(product, many=False)

    return Response(serializer.data)
Ejemplo n.º 12
0
def createProduct(request):
    data = request.data
    product = Product.objects.create(
        user=request.user,
        name=data["name"],
        brand=data["brand"],
        category=data["category"],
        description=data["description"],
        rating=0,
        numReviews=0,
        price=data["price"],
        countInStock=data["countInStock"],
    )

    product.save()
    serializer = ProductSerializer(product, many=False)

    return Response(serializer.data)
Ejemplo n.º 13
0
def createProduct(request):
    user = request.user
    farmerUser = UserSerializer(user, many=False)
    if user.isFarmer == True:
        product = Product.objects.create(
            user=user,
            name='Sample Name',
            description='Deneme',
            unit='Sample Unit',
            countInStock=0,
            category='Sample Category',
            unitPrice=0,
            isFarmProduct=True,
        )

        serializer = ProductSerializer(product, many=False)
        return Response(serializer.data)
    else:
        return Response("You are did not complete Farmer informations yet")
Ejemplo n.º 14
0
def createProduct(request):
    stripe.api_key = settings.STRIPE_SECRET_KEY
    user = request.user
    product = Product.objects.create(
        user = user,
        name = 'Sample name',
        price = 0,
        brand = 'sample brand',
        countInStock = 0,
        description= ''
    )
    stripe_product= stripe.Product.create(name=product.name, metadata={'_id': product._id })

    product.stripe_product_id = stripe_product.id
    product.save()

    serializer = ProductSerializer(product, many=False)

    return Response(serializer.data)
Ejemplo n.º 15
0
def updateProduct(request, pk):

    data = request.data
    product = Product.objects.get(_id=pk)

    product.name = data['name']
    product.description = data['description']
    product.unit = data['unit']
    product.countInStock = data['countInStock']
    product.category = data['category']
    product.unitPrice = data['unitPrice']
    product.isFarmProduct = data['isFarmProduct']
    product.productType = data['productType']
    product.harvestTime = data['harvestTime']
    product.productionTime = data['productionTime']

    product.save()

    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Ejemplo n.º 16
0
def updateFarmersProduct(request, pk):
    user = request.user
    
    data = request.data
    product = Product.objects.get(_id=pk)
    if user == product.user:

        product.name = data['name']
        product.description = data['description']
        product.unit = data['unit']
        product.countInStock = data['countInStock']
        product.category = data['category']
        product.unitPrice = data['unitPrice']
        product.isFarmProduct = data['isFarmProduct']
        

        product.save()

        serializer = ProductSerializer(product, many=False)
        return Response(serializer.data)
    else:
        return Response("That's not your product")
Ejemplo n.º 17
0
def getFilteredProductLowestPrice(request):
    queryset = Product.objects.filter(~Q(
        productPoint=None)).order_by("unitPrice")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 18
0
def getFilteredProductHighestPrice(request):
    queryset = Product.objects.all().order_by("-unitPrice")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 19
0
def getProductsPrice_gte_1000(request):
    queryset = Product.objects.filter(~Q(unitPrice=None)
                                      & Q(unitPrice__gte=1000.0))
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 20
0
def getProductsMeat(request):
    queryset = Product.objects.filter(category="Et,Tavuk,Sarkutleri")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 21
0
def getProductsDairy(request):
    queryset = Product.objects.filter(category="Sut,Sut Urunleri")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 22
0
def getProductsKuruyemis(request):
    queryset = Product.objects.filter(category="Kuruyemisler")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 23
0
def getProductsVegetables(request):
    queryset = Product.objects.filter(category="Sebze")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 24
0
def getProductsFruits(request):
    queryset = Product.objects.filter(category="Meyve")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 25
0
def getFilteredProductWithPoints3(request):
    queryset = Product.objects.filter(~Q(productPoint=None) & Q(
        productPoint__gte=3.0)).order_by("-numReviews")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 26
0
def getTopProducts(request):
    product = Product.objects.all().order_by('rating')[:3]
    serializer = ProductSerializer(product, many=True)
    return Response(serializer.data)
Ejemplo n.º 27
0
def getFilteredProductWithPoints4_5AndHigher(request):

    queryset = Product.objects.filter(productPoint__gte=4.5).order_by("-numReviews")
    serializer = ProductSerializer(queryset, many=True)
    return Response(serializer.data)
Ejemplo n.º 28
0
def getProducts(request):
    products = Product.objects.all()
    serializer = ProductSerializer(products, many=True)
    return Response(serializer.data)
Ejemplo n.º 29
0
def getProduct(request, pk):
    product = Product.objects.get(_id=pk)
    serializer = ProductSerializer(product, many=False)
    return Response(serializer.data)
Ejemplo n.º 30
0
def getTopProducts(request):
    products = Product.objects.filter(rating__gte=4).order_by('-rating')[0:5]
    serializer = ProductSerializer(products, many = True)

    return Response(serializer.data)