diff --git a/order.py b/order.py index 3e4f268..0c3afba 100644 --- a/order.py +++ b/order.py @@ -24,6 +24,9 @@ class Order(object): if ADDITION_HEADER in k: additions = v print(additions) + if not additions: + print("No additions listed in headers") + return addition_list = additions.split(';') for ad in addition_list: print(ad) diff --git a/pots.py b/pots.py index cf789b3..611c4fd 100644 --- a/pots.py +++ b/pots.py @@ -22,6 +22,7 @@ class CoffeePot(Pot): def __init__(self, name): super(CoffeePot, self).__init__(name) + self.coffeeOrders = [] print("Coffee pot initialised") def brew(self, headers): @@ -29,5 +30,24 @@ class CoffeePot(Pot): new_order = order.Order("NewOrder") new_order.configure(headers) print(new_order.json_dump()) + self.coffeeOrders.append(new_order) return "Brewing" + + def get(self): + if self.coffeeOrders: + return self.coffeeOrders[0].json_dump() + else: + return {} + + def popOrder(self): + if self.coffeeOrders: + requestedOrder = self.coffeeOrders.pop() + return requestedOrder.json_dump() + else: + return {} + + def getOrderCount(self): + return str(len(self.coffeeOrders)) + + diff --git a/server.py b/server.py index 964cf1b..cbf009b 100644 --- a/server.py +++ b/server.py @@ -1,4 +1,4 @@ -from flask import Flask, request +from flask import Flask, request, abort import pots app = Flask(__name__) @@ -7,14 +7,28 @@ pot = pots.CoffeePot("TestPot") @app.route('/pot', methods=['GET']) def get(): - return pot.get() + order = pot.get() + if order is None: + abort('404', description='No orders in queue') + return order + +@app.route('/pot/order', methods=['GET']) +def popOrder(): + order = pot.popOrder() + if order is None: + abort('404', description='No orders in queue') + return order + +@app.route('/pot/ordersInQueue', methods=['GET']) +def getOrderCount(): + return pot.getOrderCount() + ' orders in queue' @app.route('/pot', methods=['BREW', 'POST']) def brew(): return pot.brew(request.headers) - +# TODO: THIS NEEDS DOING WITH SOMETHING THAT ACTUALLY SUPPORTS CUSTOM HTTP METHODS @app.route('/pot', methods=['WHEN']) def when(): return pot.when()