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)
def getUserOrders(request): user = request.user orders = user.order_set.all() serializer = OrderSerializer(orders, many=True) return Response(serializer.data)
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)
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)
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)
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})
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)