Example #1
0
def addOrderItems(request):
    user = request.user
    data = request.data
    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({'detail': 'No order items'},
                        status=status.status.HTTP_400_BAD_REQUEST)
    else:
        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])
        shipping = ShippingAddress.objects.create(
            order=order,
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            postalCode=data['shippingAddress']['postalCode'],
            country=data['shippingAddress']['country'])
        for i in orderItems:
            product = Product.objects.get(_id=i['product'])
            item = OrderItem.objects.create(product=product,
                                            order=order,
                                            name=product.name,
                                            qty=i['qty'],
                                            price=i['price'],
                                            image=product.image.url)

            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)
        return Response(serializer.data)
Example #2
0
def getUserOrders(request):
    user = request.user
    orders = user.order_set.all()

    serializer = OrderSerializer(orders, many=True)

    return Response(serializer.data)
Example #3
0
def getOrderById(request, pk):

    user = request.user

    try:
        order = Order.objects.get(_id=pk)
        print('serializing')
        try:
            refund = Refund.objects.get(order=order)
        except Refund.DoesNotExist:
            refund = None

        print(refund)
        if user.is_staff or order.user == user:
            orderSerializer = OrderSerializer(order, many=False)
            if refund:
                print('has refunds')
                refundSerializer = RefundSerializer(refund, many=False)
                results = {
                    'order': orderSerializer.data,
                    'refund': refundSerializer.data
                }
            else:
                print('no refunds')
                results = {'order': orderSerializer.data, 'refund': {}}

            return Response(results)
        else:
            Response({'detail': 'Not authorized to view this order'},
                     status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({'detail': 'Order does not exist'},
                        status=status.HTTP_400_BAD_REQUEST)
Example #4
0
def addOrderItems(request):
    user = request.user
    print(request.user)
    data = request.data

    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({'detail': 'No Order Items'},
                        status=status.HTTP_400_BAD_REQUEST)
    else:

        # (1) Make payment

        stripe.PaymentIntent.confirm(
            data['paymentIntentId'],
            payment_method=data['paymentMethodId'],
        )

        # (2) Create order

        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'],
                                     isPaid=True)

        # (3) Create shipping address

        shipping = ShippingAddress.objects.create(
            order=order,
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            postalCode=data['shippingAddress']['postalCode'],
            country=data['shippingAddress']['country'],
        )

        # (4) Create order items and set order to orderItem relationship
        for i in orderItems:
            product = Product.objects.get(_id=i['id'])

            item = OrderItem.objects.create(
                product=product,
                order=order,
                name=product.name,
                qty=i['qty'],
                price=i['product']['price'],
                image=product.image.url,
            )

            # (4) Update stock

            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)
        return Response(serializer.data)
Example #5
0
def getOrderById(request, pk):
    user = request.user
    try:
        order = Order.objects.get(_id=pk)
        if user.is_staff or order.user == user:
            serializer = OrderSerializer(order, many=False)
            return Response(serializer.data)
        else:
            return Response({'detail': 'Not authorized to view this order'}, status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({'detail': 'Order does not exist'}, status=status.HTTP_400_BAD_REQUEST)
Example #6
0
def getMyOrders(request, pk):

    user = request.user
    upper = int(pk)

    allOrders = user.order_set.all()
    orders = allOrders.order_by('_id').reverse()[0:upper]
    serializer = OrderSerializer(orders, many=True)

    size = True if (len(serializer.data) == len(allOrders)) else False
    return Response({'data': serializer.data, 'isEndOfFeed': size})
Example #7
0
def getOrdersByUser(request):
    requestUser = request.user

    try:
        #if the query fails, run except
        orders = Order.objects.filter(user=requestUser)
        serializer = OrderSerializer(orders, many=True)
        return Response(serializer.data)

    except:
        return Response({'detail': 'You have not made any order'},
                        status=status.HTTP_400_BAD_REQUEST)
def getOrderById(request, id):
    try:
        user = request.user
        order = Order.objects.get(_id=id)
        if order.user == user or user.is_staff:
            serializer = OrderSerializer(order, many=False)
            return Response(serializer.data)
        else:
            return Response({"detail": "Not Authorized to view this orders"},
                            status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({"detail": "Order does not exist"},
                        status=status.HTTP_400_BAD_REQUEST)
Example #9
0
def addOrder(request):
    user = request.user
    data = request.data
    orderItems = data['orderItems']

    #return a customized error message
    if orderItems and len(orderItems) == 0:
        message = {'detail': 'No items in the order'}
        return Response(message, status=status.HTTP_400_BAD_REQUEST)

    else:
        if data['ispaid'] == 'now':
            paidTime = datetime.now()
            paid = True
        else:
            paid = False
            paidTime = None

        #create order
        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     itemsPrice=data['itemsPrice'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'],
                                     isPaid=paid,
                                     paidAt=paidTime)
        #create shipping address
        shipping = ShippingAddress.objects.create(
            order=order,
            address=data['shipping']['address'],
            city=data['shipping']['city'],
            postalCode=data['shipping']['postcode'],
            province=data['shipping']['province'])
        #create order items
        for i in orderItems:
            product = Product.objects.get(_id=i['_id'])

            item = OrderItem.objects.create(order=order,
                                            product=product,
                                            name=product.name,
                                            qty=i['qty'],
                                            price=product.price,
                                            image=i['image'])

            #update product stock. Product is a ForeignKey field
            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)
        return Response(serializer.data)
Example #10
0
def addOrderItem(request):

    user = request.user
    data = request.data
    print("###### data .. ", request.data)

    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({"details": "No order items"},
                        status=status.HTTP_400_BAD_REQUEST)

    else:
        # 1) create order

        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])

        # 2) create shipping
        shipping = ShippingAddress.objects.create(
            order=order,
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            country=data['shippingAddress']['country'],
            postalCode=data['shippingAddress']['postalCode'],
            shippingPrice=data['shippingPrice'])

        # 3) create orderitem

        for i in orderItems:
            product = Product.objects.get(_id=i['product'])

            orderItem = OrderItem.objects.create(product=product,
                                                 order=order,
                                                 name=product.name,
                                                 qty=i['qty'],
                                                 price=i['price'],
                                                 image=product.image.url)

            print("ordreitem $$$$$$$$$$ ", orderItem.image)
            # update stock
            product.countInStock -= int(orderItem.qty)
            product.save()

        serializer = OrderSerializer(order, many=False)

        print("Ordre Serialzier @1!!!!!!!!!!!!! ", serializer.data)
    return Response(serializer.data)
Example #11
0
def getOrderById(request, pk):
    user = request.user
    try:
        order = Order.objects.get(_id=pk)
        # only staff and current user can see the order
        if user.is_staff or order.user == user:
            serializer = OrderSerializer(order, many=False)
            return Response(serializer.data)
        else:
            return Response({"detail": "Not authorized to view this order"},
                            status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({"detail": "Order does not exist"},
                        status=status.HTTP_400_BAD_REQUEST)
Example #12
0
def getOrderById(request, pk):

    user = request.user

    try:
        order = Order.objects.get(_id=pk)
        if user.is_staff or order.user == user:
            serializer = OrderSerializer(order, many=False)
            return Response(serializer.data, status=status.HTTP_200_OK)
        return Response({'details': 'error'},
                        status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({'details': 'error'},
                        status=status.HTTP_400_BAD_REQUEST)
Example #13
0
def addOrderItems(request):
    user = request.user
    data = request.data
    orderItems = data["orderItems"]

    if orderItems and len(orderItems) == 0:
        return Response({"detail": "No order items."},
                        status=status.HTTP_400_BAD_REQUEST)
    else:
        # create order
        order = Order.objects.create(
            user=user,
            paymentMethod=data["paymentMethod"],
            taxPrice=data["taxPrice"],
            shippingPrice=data["shippingPrice"],
            totalPrice=data["totalPrice"],
        )

        # create shipping address
        shippingAddress = ShippingAddress.objects.create(
            order=order,
            address=data["shippingAddress"]["address"],
            city=data["shippingAddress"]["city"],
            state=data["shippingAddress"]["state"],
            country=data["shippingAddress"]["country"],
            pin=data["shippingAddress"]["pincode"],
        )

        # create order items
        for i in orderItems:
            product = Product.objects.get(_id=i["product"])

            item = OrderItem.objects.create(
                product=product,
                order=order,
                name=product.name,
                qty=i["qty"],
                price=i["price"],
                image=product.image.url,
            )

        # update stock
        product.countInStock -= item.qty
        product.save()

        serializer = OrderSerializer(order, many=False)

        return Response(serializer.data)
def addOrderItems(request):
    user = request.user
    data = request.data

    orderItems = data['orderItems']
    validation = isOrderValid(data)

    if not orderItems or len(orderItems) == 0:
        return Response({
            "detail": "No order items",
            "status": status.HTTP_400_BAD_REQUEST
        })
    else:
        # (1) create order
        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])

        # (2) create shipping address

        shippingAddress = ShippingAddress.objects.create(
            order=order,
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            postalCode=data['shippingAddress']['postalCode'],
            country=data['shippingAddress']['country'],
            shippingPrice=data['shippingPrice'])

        # (3) create order items

        for item in orderItems:

            product = Product.objects.get(_id=item['product'])
            orderItem = OrderItem.objects.create(product=product,
                                                 user=user,
                                                 order=order,
                                                 name=product.name,
                                                 qty=item['qty'],
                                                 price=item['price'],
                                                 image=item['image'])
            # (4) update stock
            product.countInStock -= int(item['qty'])
            product.save()

        serializer = OrderSerializer(order, many=False)
        return Response(serializer.data)
Example #15
0
def getOrderById(request, id):
    user = request.user

    try:
        #if the query fails, run except
        order = Order.objects.get(_id=id)
        if user.is_staff or order.user == user:
            serializer = OrderSerializer(order, many=False)

            return Response(serializer.data)
        else:
            message = {'detail': 'You have no anthorization for this order'}
            return Response(message, status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({'detail': 'Order not exists'},
                        status=status.HTTP_400_BAD_REQUEST)
Example #16
0
def addOrderItems(request):
    #from json webtoken
    user = request.user
    data = request.data

    #orderItems from frontend
    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({'detail': 'No order Items'},
                        status=status.HTTP_400_BAD_REQUEST)

    else:
        # create order
        #also from models.py
        order = Order.objects.create(
            user=user,
            paymentMethod=data['paymentMethod'],
            taxPrice=data['taxPrice'],
            shippingPrice=data['shippingPrice'],
            totalPrice=data['totalPrice'],
        )
        # create shipping address
        shipping = ShippingAddress.objects.create(
            order=order,
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            postalCode=data['shippingAddress']['postalCode'],
            country=data['shippingAddress']['country'],
        )

        # create order items and set order to orderItem relationship
        for i in orderItems:
            product = Product.objects.get(_id=i['product'])
            item = OrderItem.objects.create(product=product,
                                            order=order,
                                            name=product.name,
                                            qty=i['qty'],
                                            price=i['price'],
                                            image=product.image.url)

            # Update Stock
            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)
        return Response(serializer.data)
Example #17
0
def addOrderItems(request):
    user = request.user
    # print('request.user:'******'request.data:', data)

    orderItems = data['orderItems']
    # print('orderItems:', orderItems)

    if orderItems and len(orderItems) == 0:
        return Response({'detail:', 'No Order Items'},
                        status=status.HTTP_400_BAD_REQUEST)

    else:
        # (1) Create order
        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])

        # (2) Shipping Address
        shipping = ShippingAddress.objects.create(
            order=order,  # order just created
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            postalCode=data['shippingAddress']['postalCode'],
            country=data['shippingAddress']['country'])

        # (3) create order item and set order to orderItem relationship
        for i in orderItems:
            product = Product.objects.get(_id=i['product'])
            # print('product in orderItems:', product._id)

            item = OrderItem.objects.create(product=product,
                                            order=order,
                                            name=product.name,
                                            qty=i['qty'],
                                            price=i['price'],
                                            image=product.image.url)

            # (4) update stock
            product.countInStock -= item.qty
            product.save()
        serializer = OrderSerializer(order, many=False)

        return Response(serializer.data)
def gertOrderById(request, pk):

    user = request.user  #get this from token

    try:
        order = Order.objects.get(_id=pk)
        #if user is admin or user is normal user passed from token then,serialize order data
        if user.is_staff or order.user == user:
            serializer = OrderSerializer(order, many=False)
            return Response(serializer.data)
        #if not authenticateed
        else:
            Response({'detail': 'Not authorized to view this order'},
                     status=status.HTTP_400_BAD_REQUEST)
    except:
        return Response({'detail': 'Order does not exist'},
                        status=status.HTTP_400_BAD_REQUEST)
Example #19
0
def addOrderItems(request):
    user = request.user
    data = request.data

    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({
            'detail': "No Order Items",
            status: status.HTTP_400_BAD_REQUEST
        })
    else:
        # (1) Create order
        order = Order.objects.create(user=user,
                                     paymentMethod=data["paymentMethod"],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])
        #(2) Create shipping address
        shipping = ShippingAddress.objects.create(
            order=order,
            address=data["shippingAddress"]["address"],
            city=data["shippingAddress"]["city"],
            postalCode=data["shippingAddress"]["postalCode"],
            country=data["shippingAddress"]["country"],
            shippingPrice=data['shippingPrice'])
        #(3) Create order items and set order to orderItem relationship
        for i in orderItems:
            product = Product.objects.get(_id=i["product"])
            item = OrderItem.objects.create(
                product=product,
                order=order,
                name=product.name,
                qty=i["qty"],
                price=i['price'],
                image=product.image.url,
            )
            #(4) Update stock

            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)

        return Response(serializer.data)
Example #20
0
def getOrderById(request, pk):

    try:
        user = request.user
        order = Order.objects.get(_id=pk)

        if user.is_staff or order.user == user:
            serializer = OrderSerializer(order, many=False)
            return Response(serializer.data)

        else:
            return Response({"details": "Not authorized to view this order"},
                            status=status.HTTP_400_BAD_REQUEST)

    except:

        return Response({"details": "Order dosn't exists "},
                        status=status.HTTP_400_BAD_REQUEST)
Example #21
0
def addOrderItem(request):
    user = request.user
    data = request.data
    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({'detail': 'No Order Items'},
                        status=status.HTTP_400_BAD_REQUEST)
    else:

        # (1) Create order
        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])

        # (2) Create shipping address
        shipping = ShippingAddress.objects.create(
            order=order,  # the order objcet we creatred above
            address=data['shippingAddress']['address'],
            city=data['shippingAddress']['city'],
            state=data['shippingAddress']['state'],
            postCode=data['shippingAddress']['postCode'],
            country=data['shippingAddress']['country'],
        )
        # (3) Create order items and set order to orderItem relationship
        for i in orderItems:
            product = Product.objects.get(_id=i['product'])

            item = OrderItem.objects.create(product=product,
                                            order=order,
                                            name=product.name,
                                            qty=i['qty'],
                                            price=i['price'],
                                            image=product.image.url)

            # (4) Update stock
            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)  # return one item
        return Response(serializer.data)
def addOrderItems(request):
    user = request.user
    data = request.data  #post request we send

    orderItems = data['orderItems']

    if orderItems and len(orderItems) == 0:
        return Response({'detail': 'No Order Items'},
                        status=status.HTTP_400_BAD_REQUEST)
    else:
        #1. create order
        order = Order.objects.create(user=user,
                                     paymentMethod=data['paymentMethod'],
                                     taxPrice=data['taxPrice'],
                                     shippingPrice=data['shippingPrice'],
                                     totalPrice=data['totalPrice'])
        #2. create shipping address
        shipping = ShippingAddress.objects.create(
            order=order,
            address=data['shippingAddress']
            ['address'],  #it nothing but data.shippingAddress.address
            city=data['shippingAddress']['city'],
            postalCode=data['shippingAddress']['postalCode'],
            country=data['shippingAddress']['country'],
        )
        #3. create order items and set order to orderItem(model) relationship
        for i in orderItems:
            product = Product.objects.get(_id=i['product'])

            item = OrderItem.objects.create(product=product,
                                            order=order,
                                            name=product.name,
                                            qty=i['qty'],
                                            price=i['price'],
                                            image=product.image.url)
            #4. update countInStock
            product.countInStock -= item.qty
            product.save()

        serializer = OrderSerializer(order, many=False)
        return Response(serializer.data)
def getOrders(request):
    orders = Order.objects.all()
    serializer = OrderSerializer(orders, many=True)
    return Response(serializer.data)
def getAllOrders(request):
    orders = get_list_or_404(Order)
    serializer = OrderSerializer(orders, many=True)
    return Response(serializer.data)
Example #25
0
def getMyOrder(request):
    user = request.user
    orders = user.order_set.all(
    )  # we have one to many relationship between user and order in models
    serializer = OrderSerializer(orders, many=True)
    return Response(serializer.data)
def getMyOrders(request):
    user = request.user
    orders = Order.objects.filter(user=user)
    serializer = OrderSerializer(orders, many=True)
    return Response(serializer.data)
Example #27
0
def getMyOrders(request):
    user = request.user
    orders = user.order_set.all()
    print('orders:', user.order_set)
    serializer = OrderSerializer(orders, many=True)
    return Response(serializer.data)