def post(self): try: id = int(self.request.get("id")) plat = float(self.request.get("plat")) plon = float(self.request.get("plon")) dlat = float(self.request.get("dlat")) dlon = float(self.request.get("dlon")) #check if order already exists pastOrder = db.GqlQuery("SELECT * FROM Order WHERE orderId = :1",id).get() if pastOrder is None: order = Order(orderId =id,pickup_lat=plat,pickup_lon=plon,dropoff_lat=dlat,dropoff_lon=dlon) order.put() assign.assignDelivery() self.redirect('/order/needPickup') else: self.response.set_status(333,"Order already exists") self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('newOrder.html') d = {'error':'Order {} already exists'.format(id)} self.response.out.write(template.render()) except ValueError: self.response.set_status(344,'Invalid values') self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('newOrder.html') d = {'error':'Invalid input parameters'} self.response.out.write(template.render(d))
def post(self): try: id = int(self.request.get("id")) plat = float(self.request.get("plat")) plon = float(self.request.get("plon")) dlat = float(self.request.get("dlat")) dlon = float(self.request.get("dlon")) #check if order already exists pastOrder = db.GqlQuery("SELECT * FROM Order WHERE orderId = :1", id).get() if pastOrder is None: order = Order(orderId=id, pickup_lat=plat, pickup_lon=plon, dropoff_lat=dlat, dropoff_lon=dlon) order.put() assign.assignDelivery() self.redirect('/order/needPickup') else: self.response.set_status(333, "Order already exists") self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('newOrder.html') d = {'error': 'Order {} already exists'.format(id)} self.response.out.write(template.render()) except ValueError: self.response.set_status(344, 'Invalid values') self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('newOrder.html') d = {'error': 'Invalid input parameters'} self.response.out.write(template.render(d))
def post(self): c_id = self.request.get("id") c_lat = self.request.get('lat') c_lon = self.request.get('lon') #do some error handling try: c_id = int(c_id) c_lat = float(c_lat) c_lon = float(c_lon) #check if courier already exists pastCourier = db.GqlQuery("SELECT * FROM Courier WHERE courierId = :1",c_id).get() if pastCourier is None: courier = Courier(courierId=c_id,lat = c_lat,lon=c_lon) courier.put() #when a courier is added, we assign it an order assign.assignDelivery() self.redirect('/courier/online') else: self.response.set_status(302,'Courier already exists') self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('courier.html') d={"error":"courier with id {} already exists".format(c_id)} self.response.out.write(template.render(d)) except ValueError: self.response.set_status(303,'Invalid Values') self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('courier.html') d={"error":"Invalid input parameters"} self.response.out.write(template.render(d))
def post(self): c_id = self.request.get("id") c_lat = self.request.get('lat') c_lon = self.request.get('lon') #do some error handling try: c_id = int(c_id) c_lat = float(c_lat) c_lon = float(c_lon) #check if courier already exists pastCourier = db.GqlQuery( "SELECT * FROM Courier WHERE courierId = :1", c_id).get() if pastCourier is None: courier = Courier(courierId=c_id, lat=c_lat, lon=c_lon) courier.put() #when a courier is added, we assign it an order assign.assignDelivery() self.redirect('/courier/online') else: self.response.set_status(302, 'Courier already exists') self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('courier.html') d = {"error": "courier with id {} already exists".format(c_id)} self.response.out.write(template.render(d)) except ValueError: self.response.set_status(303, 'Invalid Values') self.response.headers['Content-Type'] = 'text/html' template = jinja_env.get_template('courier.html') d = {"error": "Invalid input parameters"} self.response.out.write(template.render(d))
def post(self,courier_id): courier_id = int(courier_id) courier = db.GqlQuery("SELECT * FROM Courier WHERE courierId = :1",courier_id).get() if courier: self.update(courier) assign.assignDelivery() self.redirect('/courier/online') else: self.response.set_status(333,message="No courier found")
def post(self, courier_id): courier_id = int(courier_id) courier = db.GqlQuery("SELECT * FROM Courier WHERE courierId = :1", courier_id).get() if courier: self.update(courier) assign.assignDelivery() self.redirect('/courier/online') else: self.response.set_status(333, message="No courier found")
def testAssignDelivery2(self): #have orders, but no couriers order = Order(orderId=1,pickup_lat=1.0,pickup_lon=1.0,dropoff_lat=2.0,dropoff_lon=2.0) order.put() order = Order(orderId=2,pickup_lat=11.0,pickup_lon=1.0,dropoff_lat=2.0,dropoff_lon=2.0) order.put() assign.assignDelivery() posOrder = db.GqlQuery("SELECT * FROM Order WHERE orderId = 1").get() self.assertEqual(None,posOrder.courierId) self.assertEqual('needPickup',posOrder.state) posOrder = db.GqlQuery("SELECT * FROM Order WHERE orderId = 2").get() self.assertEqual(None,posOrder.courierId) self.assertEqual('needPickup',posOrder.state)
def testAssignDelivery1(self): #have couriers but no orders available courier = Courier(courierId=1,lat=2.0,lon=3.0,online=True) courier.put() courier = Courier(courierId=3,lat=4.0,lon=3.0,online=True) courier.put() orders = assign.idleOrders() self.assertEqual(0, orders.count()) assign.assignDelivery() posCourier = db.GqlQuery("SELECT * FROM Courier WHERE courierId = 1").get() self.assertEqual(True,posCourier.online) posCourier = db.GqlQuery("SELECT * FROM Courier WHERE courierId = 3").get() self.assertEqual(True,posCourier.online)
def post(self,courier_id): self.response.out.write(courier_id) courier_id = int(courier_id) handle = db.GqlQuery("SELECT * FROM Courier WHERE courierId = :1",courier_id) courier = handle.get() if courier is not None: order = db.GqlQuery("SELECT * FROM Order WHERE state = :1",'enRoute').get() if order is not None: self.update(order) #assign it a new delivery assign.assignDelivery() self.redirect('/order/delivered') else: self.response.set_status(333,message='No order found') else: self.response.set_status(333,message='No courier found')
def post(self, courier_id): self.response.out.write(courier_id) courier_id = int(courier_id) handle = db.GqlQuery("SELECT * FROM Courier WHERE courierId = :1", courier_id) courier = handle.get() if courier is not None: order = db.GqlQuery("SELECT * FROM Order WHERE state = :1", 'enRoute').get() if order is not None: self.update(order) #assign it a new delivery assign.assignDelivery() self.redirect('/order/delivered') else: self.response.set_status(333, message='No order found') else: self.response.set_status(333, message='No courier found')
def testAssignDelivery3(self): #normal case where we have orders and couriers available courier = Courier(courierId=1,lat=2.0,lon=3.0,online=True) courier.put() courier = Courier(courierId=3,lat=14.0,lon=13.0,online=True) courier.put() order = Order(orderId=4,pickup_lat=1.0,pickup_lon=1.0,dropoff_lat=2.0,dropoff_lon=2.0) order.put() order = Order(orderId=5,pickup_lat=11.0,pickup_lon=11.0,dropoff_lat=2.0,dropoff_lon=2.0) order.put() assign.assignDelivery() #order 4 is matched with courier 1 # posCourier = db.GqlQuery("SELECT * FROM Courier WHERE courierId = 1").get() # self.assertEqual(4,posCourier.orderId) # self.assertEqual(False,posCourier.online) posOrder = db.GqlQuery("SELECT * FROM Order WHERE orderId = 4").get() self.assertEqual(1,posOrder.courierId) self.assertEqual('enRoute',posOrder.state)